我希望动态地在现有数组中添加新数组。在这里,我尝试将数组添加到共享服务中的现有数组。
这是我的代码
var shareService = angular.module('ibaDataService', []);
shareService.service('shareData', function () {
this.comonData = [];
this.tabData = [];
this.pushArray = function (arrayName) {
//this.comonData.push(arrayName[]);
// here i want to add commonData.newArray[]
}
});
答案 0 :(得分:1)
使用Array#concat
:
this.comonData = this.comonData.concat(arrayName);
concat()方法返回一个新数组,该数组由调用它的数组组成,并与作为参数提供的数组和/或值连接。
答案 1 :(得分:1)
在嵌套this
中引用变量之前,您需要将function
的值存储在变量中。
例如:
var shareService = angular.module('ibaDataService', []);
shareService.service('shareData', function () {
var self = this;
this.comonData = {};
this.tabData = [];
this.pushArray = function (key, value) {
// self holds the value of the parent instance
self.comonData[key] = value;
}});
self
现在用于维护对原始this
的引用,即使上下文已更改(在另一个函数内)。
答案 2 :(得分:1)
var shareService = angular.module('ibaDataService', []);
shareService.service('shareData', function () {
this.comonData = [];
this.tabData = [];
this.pushArray = function (arrayName) {
this.comonData = this.comonData.concat(arrayName);
}
});
答案 3 :(得分:1)
如果你想动态地做,我认为你可以使用“手表”:
$rootScope.$watch('variableToWatch', function() {
// - Call concat code here
});
每次更改源数据时都会执行您的代码。 当然,您必须在服务中添加“$ rootScope”依赖项。
答案 4 :(得分:0)
您可以使用concat合并数组:
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);
// Result is: Cecilie,Lone,Emil,Tobias,Linus
在你的情况下:
this.comonData.concat(someOtherArray);