![](/img/trans.png)
[英](Angular.js) How to count how many item there are in an array by filter?
[英]Angular.js: how to update one item of an array?
背景:内置Angular(带有路由),Node,Express,MongoDB / Mongoose的应用程序。
在一个控制器中,我有一个数组东西$scope.array=[];
通过$http
请求获取其项。
我有一个例程来修改数组的一项:
$http.get('/api/update?id='+itemId, ..
成功get
请求后,我必须更新已修改的$scope.array
的特定项目。 我知道一种可能的方法是重新获取整个数组,但是效率低下。
谁能建议一种方法来仅更新/替换已修改的项目?
您可以执行以下简单操作。 您可能已经知道这一点。
$ scope.array.splice(this。$ index,1,updatedItem);
如果您已经使用ID检查在数组上循环,则它将在$ index位置替换/更新数组中的项目。
您可以使用如下策略:
var modified_item_index = arrayIndexOfModifiedItem;
$http.get('').onSuccess(function(result){
$scope.dataArray[modified_item_index] = result;
});
本质上,使用闭包范围的变量来存储修改项的数组索引。
如果您在Web应用程序(例如jQuery)中使用库,则可以使用其IE7 / 8支持(例如jQuery的$.inArray
)。 如果没有,您可以为IE7 / 8包含一个简单的“ polyfill”:
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(obj, start) { for (var i = (start || 0), j = this.length; i < j; i++) { if (this[i] === obj) { return i; } } return -1; } }
有关更多信息,请参见如何在Internet Explorer浏览器的JavaScript中修复Array indexOf() 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.