Делаю первое приложение на Angular. Запнулся на получении данных из json для вывода на шаблон. Проблема: при переходе на страницу cars вижу ошибку:
Error: cars is not defined angular.js:12477:18
Вот код ниже, буду благодарен за помощь
index.html
upgrade your browser to improve your experience.
cars.html
Cars Page
-
{{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){});
Комментариев нет:
Отправить комментарий