尝试从指南中执行布尔“绑定元素属性”的事情。
javascript是:
window.App = Ember.Application.create();
window.App.NumberTextField = Ember.TextField.extend({
valueChanged: (function() {
return this.get("controller").set("isNotCompleteId", this.get("value").length !== 6);
}).observes("value")
});
window.App.LandingController = Ember.ObjectController.extend({
isNotCompleteId: true
});
window.App.Router.map(function() {
return this.route("landing", {
path: "/"
});
});
模板是:
<h3>Example:</h3>
<script type="text/x-handlebars">
<p>
<a href="#"
{{bindAttr disabled="isNotCompleteId"}}>
Join number:
</a>
{{view App.NumberTextField valueBinding="idEntered" size="8"}}
<p>{{idEntered}}</p>
</p>
</script>
这个 jsfiddle 显示(我认为是)不良行为:http: //jsfiddle.net/csterritt/AaTpd/11/
检查“结果”窗格中的“加入编号:”链接。它没有“禁用”属性(我相信它应该)。更改文本框中的文本直到它有六个字符不会更改属性(它应该在六个字符处)。
如果我将 HTML 的第 7 行更改为 {{bindAttr class="isNotCompleteId:foo:bar"}} 它按预期工作(尽管类以“bar”开头,因此,即使我设置了控制器属性也以 false 开头它是真的......???)。
漏洞?我的困惑?
谢谢!