Angular JS中jquery的$.each()
循环的替代方法是什么。
我在jquery中有以下内容(在我的基于Angular JS的项目中):
$($scope.tasks).each(function(index, task){
if (task.isCompleted) {
task.showTask = true;
}
});
我不想使用jquery和angular的混合,因为他们说这样做是不好的做法(是吗?)。是否有像$.each()
这样的角度提供的功能?或者我应该使用普通的JavaScript?
答案 0 :(得分:31)
您可以使用angular.forEach()在angularjs中进行迭代
angular.forEach($scope.tasks, function (task, index) {
if (task.isCompleted) {
task.showTask = true;
}
});
答案 1 :(得分:0)
另一种选择是使用Array.prototype.forEach
并使用https://github.com/es-shims/es5-shim为旧浏览器填充它。
这样,你可以这样做:
$scope.tasks.forEach(function(task) {
if (task.isCompleted) {
task.showTask = true;
}
});
答案 2 :(得分:0)
angular.forEach
对我来说做得很好。它提供简洁;
var newArr = [];
angular.forEach(oldArr, function (val, key) {
this.push(someFunction(val, key)); // much wow
}, newArr);
但这取决于一个用例到另一个用例。在我编写的大多数代码中,它证明非常有用,它已完全取代$.each
。
关于混合,angular附带了jQuery方法的子集,在大多数情况下,这些方法可以完成工作并且不需要任何其他方法。我更喜欢保持应用程序轻量级。另外,对于我来说,不要将其与jQuery混合起来是一个原则问题 - 因为Angular是一个完全不同的思路。