我正在做这样的工厂: (简化版)
module.factory("$list", function($http, $env) {
var service = function() {
this.items = [];
this.count = 0;
this.updateCount = function() {
var self = this;
$http.head($env.host + '/path/to/resource')
.success(function(data, status, headers, config) {
self.count = headers()['x-total-count']
});
};
};
updateCount(); //this doesn't update the count value
return service;
});
然后我用它来扩展模型工厂:
module.factory("Model", function($resource, $http, $list, $env) {
angular.extend(Model, $resource(
$env.host + '/base/path/:id',
{id: "@id"},
{ }
));
angular.extend(Model, $list);
Model.updateCount(); // this updates the count value
};
然后我的控制器正在使用它:
angular.module('my_module').controller('MyController', function($scope, Model){
$scope.model = Model;
}
我可以使用所有$resource
个功能,但$list
的第二个范围会返回成功后未更新的计数,并且似乎无法观看。
如何确保我的$ list扩展变量在成功时正确更新并在主工厂内看到?
更新1:
我已更新$list
工厂。
动态更新和监视计数值的唯一方法是在扩展工厂内调用count()
方法,而不是$list
工厂。我不知道为什么它在$list
工厂内无效。