我试图在指令中查看自定义指令属性值。此值是来自控制器的变量绑定。变量是布尔值,并通过控制器中的操作进行更新。
我可以看到我通过console.logs正确地更新了控制器操作中的这个值,但我似乎无法获得指令来监视此值的更改。正如我所说,这个值是自定义指令的值:auto-focus =" {{isFocused}}"
我已经创建了一个简单的plunker来展示我的问题,任何帮助都会很棒。
Angular - 侦听控制器执行的指令中的绑定更改
答案 0 :(得分:1)
为了观察具有插值的属性的变化,您需要使用$ attrib。$ observe而不是$ scope。$ watch。这在angularjs文档中有描述:http://docs.angularjs.org/api/ng/service/$compile#Attributes
此外,您将focusVal与true进行比较,但您将其作为字符串通过该属性传递。这是一个更新的plunker:http://plnkr.co/edit/e8ZaBM?p=preview
答案 1 :(得分:1)
在焦点指示中,你有:
focus-on="{{isFocused}}"
这使你的指令实际上观察了isFocus包含的内容 - 这是“假”
将其更改为:
focus-on="ifFocused"
然后你的代码工作正常。