Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Error: cars is not defined angular.js:12477:18

Делаю первое приложение на Angular. Запнулся на получении данных из json для вывода на шаблон. Проблема: при переходе на страницу cars вижу ошибку:
Error: cars is not defined angular.js:12477:18
Вот код ниже, буду благодарен за помощь
index.html
My AngularJS App


upgrade your browser to improve your experience.



Angular seed app: v


cars.html

Cars Page


  • {{car.name}}

    {{car.title}}

    {{car.color}}

    {{car.description}}


cars.js
'use strict';
angular.module('myApp.cars', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) { $routeProvider.when('/cars', { templateUrl: 'views/cars.html', controller: 'carsCtrl' }); }])
.controller('carsCtrl', ['$scope', '$http',function($scope, $http) { $http.get(cars.json) .success(function($scope,data){ console.log("This is data: ", data, "
This is Status: ", status, "
This is Headers: ", headers, "
This is config: ", config); $scope.cars = data; }) .error(function(){ alert("can not get data from cars.json") }); }]);


Ответ

Так как запрос отрабатывает асинхронно, то при построения вьюхи, приложение может не знать, что такое cars.
Нужно просто объявить свойство cars в контроллере:
.controller('carsCtrl', ['$scope', '$http',function($scope, $http) { $scope.cars = {}; $http.get(cars.json) .success(function(data){ console.log("This is data: ", data, "
This is Status: ", status, "
This is Headers: ", headers, "
This is config: ", config); $scope.cars = data; }) .error(function(){ alert("can not get data from cars.json") }); }]);
UPD1 Невнимательность, сори...
Нужно так же убрать $scope из $http.get(cars.json).success(function(data){});

Комментариев нет:

Отправить комментарий