Angular JS:将对象从一个数组存储到不同的数组/服务
Angular JS: Store objects from one array to different arrays/services
我刚刚开始在Angular JS中开发一个非常简单的应用程序,它有一个服务/工厂,可以保存我可以推送对象的数据。
我有一组不同的人(见html),您可以使用工厂中的addCandidate()函数将其添加为候选人。
我的问题是,我希望能够将该数组中的人员/对象存储到多个数组中,例如candidates2和candidates3,具体取决于激活的路由/控制器。
我是走在正确的轨道上,还是应该完全不同地思考?
工厂和控制器:
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>
看起来您希望每个控制器的候选者都不同。在这种情况下,让工厂构建一个对象构造函数(类似于类,但不是真正的),而不是每次都给出相同的对象。
请参阅此plunker以获取示例。请注意,每个控制器都请求并通知自己的候选,而不是使用共享的候选定义。
相关文章:
- 将数组存储到本地存储中,而不是替换
- 如何将数组存储
- 在 laravel 4 上使用循环将数据数组存储到单个数组中
- 将对象/数组存储在 jQuery Cookie 中
- 想要将数组存储为 JavaScript 映射中的值
- 在 mysql 中使用多维数组存储 $_POST
- 将php多维数组存储在localstorage中
- 将数组存储在jQuery cookie中
- 如何将php数组存储在一个cookie中,然后通过javascript读取它
- 如何用单引号将数组存储在javascript中?有可能吗
- 将数组存储在html数据属性中
- 使用javascript将数组存储为json中的密钥对
- 将数组存储在函数内部与存储在对象内部有什么好处吗
- 试图使用javascript将Object.keys(obj)的返回数组存储在数组中,但得到错误“ReferenceEr
- 在javascript中使用数组存储一组具有固定值的变量
- 如何在localStorage (Javascript)中使用数组存储JSON
- 数组存储javascript
- 我如何从数组存储访问JS函数
- 关于如何使用数组存储其他变量名称的任何想法
- 在chartJs中使用动态数组存储标签和数据