@aterentyev

Как в AngularJs лучше связать данные между контроллером и директивой?

Есть задача написать директиву, которая бы меняла значение во внешнем input'e.

Попробовал решить задачу связкой переменной контроллера с переменной директивы через атрибут директивы, с последующим scope:{var: "="} - jsbin.com/mifaqi/1/edit?html,js,output но видимо работает это только в одном направлении. При обновлении данных в директиве, в контроллере они не меняются.

Есть ли еще какие то адекватные варианты, или остается только искать input по id в link функции и менять его значение?
  • Вопрос задан
  • 2642 просмотра
Решения вопроса 1
@roman450
После обычных js событий нужно использовать scope.$apply() или scope.$digest(): jsbin.com/gigewepuxi/1/edit
И вообще, лучше использовать директиву ng-click в таких случаях.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Serhioromano
@Serhioromano
Web Developer
Есть небольшой трик. Если это объект то должно менятся. Например в дриективе. attr="var" где var это объект. И если вы в директиве потом будете scope:{attr: "="} и в линкере scope.attr.somethign = 1; То результат может быть совсем другой.

Вообще и не объект должен работать в 2 стороны. Вы пробовали вместо link использовать controller?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы