我正在构建一个小角度应用程序。我从这里开始:https://github.com/angular/angular-seed。我只更改了以下文件:
/app/view1/view1.js 'use strict';
angular.module('myApp.view1', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view1', {
templateUrl: 'view1/view1.html',
controller: 'View1Ctrl'
});
}])
.controller('View1Ctrl', ['$scope', '$http',
function ($scope, $http) {
$http.get('/app/data/events.json').success(function(data) {
$scope.events = data.record;
}).error(function(data, status){
alert("error "+data+' | '+status);
});
$scope.orderProp = 'date';
}]);
/app/view1/view1.html
p>Available Events</p>
<div ng-controller="EventListController">
<ul>
<li ng-repeat="event in events">
<p>{{event.name}}</p>
<div>{{event.location}}</div>
<div>{{event.description}}</div>
<div>{{event.date}}</div>
</li>
</ul>
<p>Total number of events: {{events.size}}</p>
</div>
显示页面时,我收到以下消息:
“错误未定义|未定义”。
我已多次检查代码,但我没有找到为什么没有加载json文件。如果我尝试在浏览器中访问http://localhost:8000/app/data/events.json,则会加载json数据。
问题是:为什么没有加载json文件?
答案 0 :(得分:2)
你应该使用如下的$ http方法:
// Simple GET request example:
$http.get('url').then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
代码data
和status
中的变量未定义。
您应该像这样更新您的代码:
$http.get('/app/data/events.json')
.then(function successCallback(response) {
$scope.events = data.record;
},
function errorCallback(response) {
alert(response);
});
这将解决你的问题。