我正在努力更好地理解AngularJs和它的摘要周期,我对以下代码无效的原因感到有点困惑。
的jsfiddle http://jsfiddle.net/RyanVice/3u2dp/
代码
<div ng-app>
<input type="text" ng-model="input1"/>
<input type="text" ng-mode="input2"/>
{{ input1 === input2 }}
</div>
输入第一个字符后,此代码将从显示true更改为false,然后停止响应任一输入框中的更改。为什么不继续重新评估?
修改
哇,多么尴尬,但感谢帮助我发现错字。我有一个相关的跟进问题。如果我现在想要显示或隐藏字体真棒图标,似乎我可以使用具有相同绑定表达式的ng-show。但是下面的JsFiddle只评估第一次加载时的绑定表达式。看起来它在编译时对它进行了评估(可以通过将===更改为!===来验证),但再也不会。我知道如果我引入一个控制器,我可以使这项工作,但我正在努力更好地理解绑定表达式和摘要周期的基础知识。知道为什么这不起作用吗?
的jsfiddle http://jsfiddle.net/RyanVice/3u2dp/1/
代码
<div ng-app>
<input type="text" ng-model="input1"/>
<input type="text" ng-model="input2"/>
<span class="glyphicon glyphicon-ok" ng-show="{{ input1 === input2 }}"></span>
{{ input1 === input2 }}
</div>
答案 0 :(得分:0)
这是因为你有一个错字。以下代码有效:
<div ng-app>
<input type="text" ng-model="input1"/>
<input type="text" ng-model="input2"/>
{{ input1 === input2 }}
</div>
将原始代码中的ng-mode="input2"
更改为ng-model="input2"
。
答案 1 :(得分:0)
在第二次输入时将ng-mode
更改为ng-model
:)
我只是在小提琴中试过这个,它运行正常!