2015-02-28 4 views
1

У меня есть угловая директива с 'ng-disabled' на ней. Кажется, что атрибут «disabled» обновляется только после фазы связывания моей директивы. Можно ли это исправить?Angularjs - запрет на выполнение команды по директиве

См. Этот пример JSBin.

При замене «нг-инвалидов» с «отключено =„{{выражение}}“Это действительно работает (но это не будет работать на старых браузерах т.е.): JSBin

Спасибо!

ответ

2

При взгляде на угловой код директива ngDisabled работает так: его функция связи регистрирует часы, которые изменяют атрибут.

Таким образом, угловая функция будет выполнять эту функцию связи (более высокий приоритет, чем ваша директива), затем ваша функция ссылок, а затем сделайте дайджест, который изменит атрибут «disabled». Поэтому неудивительно, что атрибут не задан при вызове функции ссылки.

https://github.com/angular/angular.js/blob/master/src/ng/directive/attrs.js#L354

Если вы делаете ваши console.log звонки внутри вызова $ тайм-аут(), он будет отображать правильные свойства CSS, так как $ таймаут() выполняет на следующий дайджеста.

+0

Вы получили это письмо. Благодаря! –

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