![](/img/trans.png)
[英]Using a factory to pass data from one controller to another controller in AngularJS
[英]AngularJS - update data using services factory with $resource from another controller
我遇到了$ 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值也會更新。 有誰建議我以正確的方式做到這一點?
我不確定,但這可行:
您可以創建兩個工廠:
'ModelRessource'工廠僅供'Model'工廠使用。
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;
});
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.