У меня есть ng-repeat с фильтром cutsom для включения/исключения задач на основе их полного состояния и текущих настроек пользователя. Я отлично работаю, пока изменение ng-модели не заставит задачу больше не быть частью фильтра, она не запускает событие ng-click.Динамический фильтр AngularJS ng-repeat not firing ng-click
В конкретном случае ниже пользовательские настройки должны не показывать завершенные задачи. Когда этот флажок будет завершен, task.complete изменится на true, что приведет к его удалению из фильтра (до сих пор), но toggleCompleteTask(user,task)
на ng-click НЕ запускает (это обновляет задачи в БД). Если я сначала изменил пользовательский параметр, чтобы показать как полные, так и незавершенные задачи, все работает отлично, поэтому, удалив его из фильтра, каким-то образом остановится ng-click.
Как удалить из фильтра И запустить событие ng-click?
Вот мой повтор:
<li ng-repeat="task in display_group.tasks | showHiddenAndCompleted:user" mahi-task></li>
И мой пользовательский фильтр:
angular.module('mahiFilters', []).filter 'showHiddenAndCompleted', ->
(tasks, user) ->
items =
out: []
if tasks
items.out.push.apply(items.out, tasks.filter (t) -> return t.complete if user.show_completed)
items.out.push.apply(items.out, tasks.filter (t) -> return !t.complete if user.show_uncompleted)
if !user.show_hidden #loop through all tasks and add remove those that are hidden by user items.out array
i = items.out.length - 1
while i >= 0
if items.out[i].hidden_by_user == true
items.out.splice i, 1
i--
items.out #retun the items.out
И входной флажок:
<input ng-click="toggleCompleteTask(user,task)" type="checkbox" ng-model="task.complete">
Спасибо! не знаю, почему это работает, но это так! –