ngResource 如何将承诺附加到数组
How does ngResource attach a promise to an array
我正在尝试了解 AngularJS 中的 ngResource 如何能够 return 一个数组,但还允许您在其上附加一个 .$promise 以获得 promise 对象。
基本上从下面的例子来看,如果你只是调用查询函数,你会得到一个空数组(当 promise 解析时填充)。
不过,return值似乎也有一个可以访问的$promise属性。这对我来说很奇怪,因为我不确定如何将承诺附加到数组,只是一个对象。关于 javascript 一定有什么我在这里遗漏了,也许你可以澄清一下。
例如来自 angular 网站:
// We can retrieve a collection from the server
var cards = CreditCard.query(function() {
// GET: /user/123/card
// server returns: [ {id:456, number:'1234', name:'Smith'} ];
但您也可以使用 $promise 属性:
访问原始 $http promise
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123})
.$promise.then(function(user) {
$scope.user = user;
});
angular 能以某种方式给数组一个 $promise 属性 吗?
ngResource returns 每个方法的空 Resource
实例或 Array
实例。这两个实例都被赋予了 $promise 和 $resolved 属性,以便能够添加承诺调用或直接在 $scope 中使用结果。
如果我没记错的话 AngularJS 曾经在 $scope 属性.
上设置此值时查看这些属性
有更多库提供数组自定义方法(如 jQuery)。
ng资源来源:
return 值:
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L562
已添加承诺:
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L637
我正在尝试了解 AngularJS 中的 ngResource 如何能够 return 一个数组,但还允许您在其上附加一个 .$promise 以获得 promise 对象。
基本上从下面的例子来看,如果你只是调用查询函数,你会得到一个空数组(当 promise 解析时填充)。
不过,return值似乎也有一个可以访问的$promise属性。这对我来说很奇怪,因为我不确定如何将承诺附加到数组,只是一个对象。关于 javascript 一定有什么我在这里遗漏了,也许你可以澄清一下。
例如来自 angular 网站:
// We can retrieve a collection from the server
var cards = CreditCard.query(function() {
// GET: /user/123/card
// server returns: [ {id:456, number:'1234', name:'Smith'} ];
但您也可以使用 $promise 属性:
访问原始 $http promisevar User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123})
.$promise.then(function(user) {
$scope.user = user;
});
angular 能以某种方式给数组一个 $promise 属性 吗?
ngResource returns 每个方法的空 Resource
实例或 Array
实例。这两个实例都被赋予了 $promise 和 $resolved 属性,以便能够添加承诺调用或直接在 $scope 中使用结果。
如果我没记错的话 AngularJS 曾经在 $scope 属性.
上设置此值时查看这些属性有更多库提供数组自定义方法(如 jQuery)。
ng资源来源:
return 值:
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L562
已添加承诺:
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L637