簡體   English   中英

AngularJS - 使用服務工廠使用來自另一個控制器的$ resource更新數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM