AngularJS:服务查询返回零结果
AngularJS: service query returning zero result
我的app.js
看起来像
var app = angular.module('pennytracker', [
'$strap.directives',
'ngCookies',
'categoryServices'
]);
app.config(function($routeProvider) {
console.log('configuring routes');
$routeProvider
.when('/summary', { templateUrl: '../static/partials/summary.html'})
.when('/transactions', { templateUrl: '../static/partials/transaction.html', controller: 'AddTransactionController' })
});
而我的app/js/services/categories.js
看起来像
angular.module('categoryServices', ['ngResource']).
factory('Category', function($resource){
return $resource(
'/categories/:categoryId',
{categoryId: '@uuid'}
);
});
,我有一个路由作为
.when('/transactions', { templateUrl: '../static/partials/transaction.html', controller: 'AddTransactionController' })
我的控制器app/js/controllers/transactionController.js
看起来像
function AddTransactionController($scope, $http, $cookieStore, Category) {
// some work here
$scope.category = Category.query();
console.log('all categories - ', $scope.category.length);
}
当我运行应用程序时,我看到console.log为
all categories - 0
我在这里做错了什么?
Category.query()
是异步的。它立即返回一个空数组,并在响应到达后添加来自请求的结果—来自http://docs.angularjs.org/api/ngResource.$resource:
重要的是要意识到调用$resource对象方法立即返回一个空引用(对象或数组)isArray)。一旦数据从服务器返回,现有的引用用实际数据填充。这是一个有用的技巧因为通常资源被分配给一个模型,然后由视图渲染。拥有一个空对象将导致不渲染,一旦数据从服务器到达,对象就会被填充与数据和视图自动重新呈现本身显示新数据。
如果你需要在控制器中访问结果,你应该在回调函数中这样做:
$scope.category = Category.query(function(){
console.log('all categories - ', $scope.category.length);
});
相关文章:
- 是否可以将JXBrowser显示的JS确认对话框的结果返回到调用它的JS部分
- 将字符串结果返回到表单元格中的新行中
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- 使用 JSON 和 ExtJS 将 MPDF 结果返回给浏览器
- 将信息结果返回到多个输入字段
- 如何将变量从javascript发送到php并将结果返回给JS
- 将 JavaScript 变量传递给 PHP,并将 PHP 结果返回给 JavaScript 变量
- 当没有结果返回 JavaScript 搜索时显示消息
- 加载相同的结果返回按钮
- 如果搜索框位于_SiteLayout页(在页眉 DIV 中),如何将搜索结果返回给用户
- MVC C#中的自定义操作结果返回特定视图
- 使用javascript/lodash对特定键的相同值进行分组,并对其进行计数,然后将结果返回到数组
- 如何使用javascript将循环结果返回到列中
- 结果返回为“未定义”
- 搜索未检测到结果返回-Selectize.js
- 调用一个打开活动并将活动结果返回给javascript的java函数
- 将PHP结果返回到原始html页面
- ASP.. NET MVC控制器结果返回到视图
- 如何通过AJAX传递值来更改SQL搜索查询并将结果返回给HTML ?
- Asp.net MVC或javascript将另一个页面的结果返回给方法