Ответ 1
Вы можете использовать angular.forEach() для итерации в angularjs
angular.forEach($scope.tasks, function (task, index) {
if (task.isCompleted) {
task.showTask = true;
}
});
Какова альтернатива для цикла jquery $.each()
в Angular JS.
У меня есть следующее в jquery (в моем проекте Angular JS):
$($scope.tasks).each(function(index, task){
if (task.isCompleted) {
task.showTask = true;
}
});
и я не хочу использовать сочетание jquery и angular, потому что они говорят, что это плохая практика для этого (не так ли?). Есть ли функция, которая Angular предоставляет как $.each()
? Или я должен идти с простым javascript?
Вы можете использовать angular.forEach() для итерации в angularjs
angular.forEach($scope.tasks, function (task, index) {
if (task.isCompleted) {
task.showTask = true;
}
});
Другим вариантом является использование Array.prototype.forEach
и настройка его для старых браузеров с помощью https://github.com/es-shims/es5-shim.
Таким образом, вы можете:
$scope.tasks.forEach(function(task) {
if (task.isCompleted) {
task.showTask = true;
}
});
angular.forEach
делает отличную работу для меня. Он обеспечивает краткость;
var newArr = [];
angular.forEach(oldArr, function (val, key) {
this.push(someFunction(val, key)); // much wow
}, newArr);
Но это зависит от одного варианта использования к другому. В большей части кода, который я написал, он оказывается весьма полезным, и он полностью заменил $.each
для меня.
О смешении вещей, angular поставляется с подмножеством методов jQuery, которые в большинстве случаев выполняют работу и не требуют ничего другого. Я предпочитаю, чтобы приложение было легким. Кроме того, для меня важно не смешивать вещи с jQuery, так как angular - совершенно другая линия мысли.