オブジェクトをプッシュできるデータを保持するサービス/ファクトリを使用して、Angular JS で非常にシンプルなアプリの開発を開始しました。
ファクトリにあるaddCandidate()関数を使用して候補者として追加できるさまざまな人々 (html を参照) の配列があります。
私の問題は、その配列の人/オブジェクトを、アクティブなルート/コントローラーに応じて、候補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>