我遇到了$ angular of angularjs的问题
我有一家服务工厂:
angular.module('publicApp').factory('Model', function ($resource) {
var totalStock = $resource('./resource/data/totalStock',{},{}});
return {
totalStock : totalStock
}
});
控制器从服务中获取数据:
angular.module('publicApp')
.controller('ManageCtrl', function ($scope, Model) {
$scope.total = Model.totalStock.query();
});
然后,在另一个控制器中,当一个函数内部成功时,我回想起服务:
angular.module('publicApp')
.controller('ActionCtrl', function ($scope, Model) {
$scope.checkout = function () {
$http.post('/resource/action/sold', formData).success(function (resp) {
if (resp.resCode == -1) {
alert(resp.result);
return;
}
console.log('sold!');
Model.totalStock.query();
});
}
});
我的想法是,当Model.totalStock.query()服务召回时,ManageCtrl的$ scope.total值也会更新。有谁建议我以正确的方式做到这一点?
答案 0 :(得分:2)
我不确定,但这可行:
您可以创建两个工厂:
' ModelRessource'工厂仅供您使用'型号'工厂。
angular.module('publicApp').factory('ModelRessource', function ($resource) {
var totalStock = $resource('./resource/data/totalStock',{},{}});
return {
totalStock : totalStock
}
});
然后,您使用'模型'工厂与您的资源互动。如果将$ scope绑定到Model.totalStack,则每次调用refreshTotalStack()时,都应该更新totalStack。
angular.module('publicApp').factory('Model', function (ModelRessource) {
var data = {};
data.totalStack = {};
return {
totalStack : data.totalStack,
refreshTotalStack : function () {
ModelRessource.totalStock.query(function (resp) {
data.totalStack = resp;
return data.totalStack;
});
}
}
});