我有一个在
返回的JSON对象localhost:9000/api/
我希望JSON数据能够填充
中的视图localhost:9000/#/query
我有一条路线
.when('/query', {
templateUrl: 'views/query.html',
controller: 'QueryCtrl'
})
和控制器:
'use strict';
angular.module('myApp')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.queries = Query.query();
}]);
和视图:
<h1>Queries</h1>
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
似乎“查询”是空的,或者视图没有正确连接到控制器。
app.js也有这个工厂:
app.factory('Query', ['$resource', function($resource) {
return $resource('/api', null, {
'update': { method:'PUT' }
});
}]);
JSON对象本身如下所示:
[{"tablename":"acc_logs"},{"tablename":"accounts"},{"tablename":"cat_logs"},{"tablename":"err_logs"},{"tablename":"exp_logs"},{"tablename":"pp_logs"},{"tablename":"sec_logs"},{"tablename":"stl_logs"},{"tablename":"tim_logs"},{"tablename":"tom_logs"},{"tablename":"usage_logs"}]
我可以在/api
看到JSON字符串,但是当我转到/#/query
时,它只是一个空列表。
我如何连接这些?我犯了什么错误?
编辑:感谢所有人的帮助。我忘了在index.html中添加我的控制器javascript。菜鸟错误,需要一个小时才能解决。
答案 0 :(得分:1)
我发现您正在调用似乎不可用的Query对象,请尝试:
angular.module('myApp')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Group) {
$scope.query = Group.query();
希望这有帮助。
答案 1 :(得分:1)
正如我在评论中指出的那样,您应该将$scope.query = Query.query();
更改为$scope.queries = Query.query();
,因为您使用ng-repeat
而不是queries
。
然而,还有另一个错误。你必须改变
app.factory('Query', ['$resource', function($resource) {
return $resource('/api', null, {
'update': { method:'PUT' }
});
}]);
到
app.factory('Query', ['$resource', function($resource) {
return $resource('/api/query', null, {
'update': { method:'PUT' }
});
}]);
当您致电Query.query()
时,您要向/api
申请HTTP GET,而您想要/api/query
。