2016-04-21 3 views
0

У меня есть 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"> 

ответ

1

Try нг-изменение вместо нг-клик :

<input ng-change="toggleCompleteTask(user,task)" type="checkbox" ng-model="task.complete"> 
+0

Спасибо! не знаю, почему это работает, но это так! –

Смежные вопросы