0
我剛開始在Angular JS中開發一個非常簡單的應用程序,其中包含一個服務/工廠,用於存儲我可以將對象推送到的數據。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>
這真的有所幫助,它只是我希望數組中的數據在不同路由中可用(即使您返回到路由1)。如果我從另一條路線返回到路線1和控制器1,工廠將用一個空數組構建一個新的候選對象,並打印出來而不是添加的候選對象。 – Rocaboca
所以如果我明白了,這些數組會有很多實例,每個實例都需要保留?我將創建一個處理候選人管理的服務,另一個基於名稱或其他創建並保留這些候選對象。然後每個控制器請求後者服務,並通過名稱請求它需要的候選對象。 – heneryville