2

尝试从指南中执行布尔“绑定元素属性”的事情。

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 开头它是真的......???)。

漏洞?我的困惑?

谢谢!

4

0 回答 0