2016-01-16 5 views
0

проблема с угловым. На моем сайте есть комментарии. Каждый комментарий имеет одну и ту же директиву «ng-controller =» commentCtrl ». Теперь, когда у меня около 300 комментариев на моем веб-сайте, есть 300 экземпляров commentCtrl. В html контроллера я использую ng-disabled = "author_provided()" на кнопке. Когда я изменяю текстовое поле ввода автора, все 300 комментариев вызывают author_provided() (потому что эта функция зависит от авторской ng-модели). Это вызывает проблемы с производительностью. Я хочу, чтобы функция author_provided() вызывалась только в контроллере, где я меняю автора. Как это сделать?Многократное использование одного и того же контроллера в угловом

ответ

1

Функция author_provided будет оцениваться для каждого комментария в каждом цикле $ digest. Если вы должны обойти это поведение, я предлагаю добавить автора boolean как свойство объекта комментария. Тогда ваш код шаблона можно просто прочитать: ng-disabled=comment.author_provided (без вызова функции) и Угловой будет оценивать результат без вызова функции контроллера.

Функция вызывается для каждого комментария, поскольку механизм шаблонов не может знать результат ng-disabled для каждого комментария без оценки вызова функции контроллера.

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