【发布时间】:2016-09-02 09:37:33
【问题描述】:
需要从 .query() 中获取一个对象,服务:
angular.
module('core.users').
factory('User', ['$resource',
function($resource) {
return $resource('users/users.json', {}, {
query: {
method: 'GET',
isArray: true
}
});
}
]);
组件:
'use strict';
angular.
module('userDetail').
component('userDetail', {
templateUrl: 'user-detail/user-detail.template.html',
controller: ['$routeParams', 'User', '$filter',
function TaskDetailController ($routeParams, User, $filter) {
var vm = this;
vm.id = parseInt($routeParams["id"], 10);
vm.users = User.query(function() {
vm.user = $filter('currentUser')(vm.users, vm.id);
});
}
],
controllerAs: 'vm'
});
需要从数组中获取一个对象,'currentUser',带有 $routeParams id,问题 - vm.user 在控制器范围内未定义,这里
vm.users = User.query(function() {
vm.user = $filter('currentUser')(vm.users, vm.id); // all ok, i got the object
});
console.log(vm.user) // undefined
查看没问题,我可以显示属性,但是当一些用户道具发生变化时,需要使用这个单独的对象向服务器发出 .put() 请求...
【问题讨论】:
-
您的 console.log 不在 aysnc 请求范围内。请把它放在里面看看打印结果与否
-
是的,打印出来了,但是我怎样才能让这个对象脱离请求呢?尝试了很多方法,但仍然找不到解决方案……还是只需要在此请求中进行所有操作?
-
检查更新的答案
标签: javascript angularjs angularjs-scope