我正在使用$watch
来监听myData
这是一个数组。在按钮单击中,我将一个新元素插入到数组中。我需要从newValue
数组中找到新添加元素的位置,这是$watch
中的参数。
$scope.myData = [{
"name": "karthik ",
"age": 24
},
{
"name": "Vijay ",
"age": 24,
},
{
"name": "Krish",
"age": 26,
}];
var newData = {
"name": "viki",
"age": 25
}
myData.splice(2, 0, newData);
在链接功能我有
scope.$watchCollection(function(scope) {
return scope.myData;
}, function(newVal, oldVal) {
console.log(newVal);
console.log(oldVal);
});
答案 0 :(得分:0)
您可以使用request.getParameter("cfgname")
来比较两个angular.equal
,values
,objects
。
https://docs.angularjs.org/api/ng/function/angular.equals
并根据您的声明,您希望数组中的新插入元素。然后在数组中插入元素后如果你没有对数组进行任何操作,那么插入的元素就是你可以简单检索的最后一个元素。
答案 1 :(得分:0)
根据您的要求, 我需要从newValue数组中找到新添加元素的位置。
我创建了一个function
来获取更改的数组值以及添加它的索引。
这是功能
function difference(a1, a2) {
var result = { array: [], index: 0};
for (var i = 0; i < a1.length; i++) {
if (a2.indexOf(a1[i]) === -1) {
result.array.push(a1[i]);
result.index = i
}
}
return result;
}
您可以使用difference(newVal,oldVal)
scope.$watchCollection(function(scope) {
return scope.myData;
}, function(newVal, oldVal) {
console.log(newVal);
console.log(oldVal);
var diff = difference(newVal,oldVal)
console.log(diff)
});
例如:
var diff = difference([1,2,3,[2,4],4],[1,2,3,4])
O/P: {array: [2,4], index: 3}