Я пытаюсь внести изменения в директиву от моего основного контроллера.Управляющая угловая директива снаружи
это код директивы
# directive.coffee
application.directive 'btnState', ->
{
restrict: 'A'
link: (scope, el, attrs) ->
attrs.$observe 'ngModel', (newVal) ->
switch newVal
when 'loading'
# do something
when 'reset'
# do other thing
el.click (event) ->
attrs.$set 'ngModel', 'loading'
return
}
сейчас в моем шаблоне
<button id="#do-btn" ng-click="doSometing()" ng-model="ns.btn_state" btn-state>Do it</button>
<button id="#cancel-btn" ng-click="ns.btn_state = 'reset'">Cancel</button>
Когда я нажимаю на #do-btn
кнопку работает оштрафовать $observe
цепляет изменение, но когда я пытаюсь изменить ns.btn_state
снаружи никогда не попадал
Как я могу это решить?
Я использую угловой 1.0.7
в версии 'scope. $ Watch', как я могу изменить значение внутри директивы – rkmax
Я только что отредактировал свой ответ. Надеюсь, это поможет. – ovmjm
Я также завернул 'assign' в' $ apply', чтобы сделать его более понятным. – ovmjm