`$.each()` альтернатива в Angular JS

Какова альтернатива для цикла jquery $.each() в Angular JS.

У меня есть следующее в jquery (в моем проекте Angular JS):

    $($scope.tasks).each(function(index, task){
        if (task.isCompleted) {
            task.showTask = true;
        }
    });

и я не хочу использовать сочетание jquery и angular, потому что они говорят, что это плохая практика для этого (не так ли?). Есть ли функция, которая Angular предоставляет как $.each()? Или я должен идти с простым javascript?

Ответ 1

Вы можете использовать angular.forEach() для итерации в angularjs

angular.forEach($scope.tasks, function (task, index) {
    if (task.isCompleted) {
        task.showTask = true;
    }
});

Ответ 2

Другим вариантом является использование Array.prototype.forEach и настройка его для старых браузеров с помощью https://github.com/es-shims/es5-shim.

Таким образом, вы можете:

$scope.tasks.forEach(function(task) {
  if (task.isCompleted) {
    task.showTask = true;
  }
});

Ответ 3

angular.forEach делает отличную работу для меня. Он обеспечивает краткость;

var newArr = [];
angular.forEach(oldArr, function (val, key) {
    this.push(someFunction(val, key)); // much wow
}, newArr);

Но это зависит от одного варианта использования к другому. В большей части кода, который я написал, он оказывается весьма полезным, и он полностью заменил $.each для меня.

О смешении вещей, angular поставляется с подмножеством методов jQuery, которые в большинстве случаев выполняют работу и не требуют ничего другого. Я предпочитаю, чтобы приложение было легким. Кроме того, для меня важно не смешивать вещи с jQuery, так как angular - совершенно другая линия мысли.