簡體   English   中英

Angular JS:將對象從一個數組存儲到不同的數組/服務

[英]Angular JS: Store objects from one array to different arrays/services

我剛剛開始在Angular JS中開發一個帶有服務/工廠的非常簡單的應用程序,其中包含可以將對象推入的數據。

我有一系列不同的人(請參見html),您可以使用工廠中的addCandidate()函數添加為候選人。

我的問題是,我希望能夠將人員/對象從該陣列存儲到多個陣列中,例如候選人2和候選人3,具體取決於激活的路由/控制器。

我是在正確的道路上還是應該完全不同?

工廠和控制器:

var app = angular.module('myApp', []);

app.factory('Candidates', function (){

  var candidates = [];

  /* I want to fill this array with objects from myCtrl2 */
  var candidates2 = [];

  return{

    addCandidate: function(candidate){
      candidates.push(candidate);
    }

    /* More functions related to Candidates */

  }
});

app.controller('myCtrl1', function($scope, Candidates){

  $scope.addCandidate = function(candidate){
   Candidates.addCandidate(candidate);
  }

});

/* I want to push candidates to candidates2 here */

app.controller('myCtrl2', function($scope, Candidates){

  $scope.addCandidate = function(candidate2){
   Candidates.addCandidate(candidate2);
  }

});

/* More controllers of same kind */

HTML:

<ul>
    <li ng-repeat="person in people">
      <h2>{{ person.name }}</h2>
      <button ng-click="addCandidate(person)">Add candidate</button>
    </li>
</ul>

看來您希望每個控制器的候選人都不同。 在這種情況下,請讓工廠構建一個對象構造函數(類似於類,但實際上不是),而不是每次都提供相同的對象。

有關示例,請參見此插件 請注意,每個控制器都請求和新聞它自己的候選者,而不是使用共享的候選者定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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