Guideからブール値の「Binding element attributes」を実行しようとしています。
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/
結果ペインの「結合番号:」リンクを調べます。「無効」属性はありません(そうすべきだと思います)。テキスト ボックス内のテキストを 6 文字になるまで変更しても、属性は変更されません (6 文字になるはずです)。
HTML の 7 行目を {{bindAttr class="isNotCompleteId:foo:bar"}} に変更すると、期待どおりに動作します (ただし、クラスは "bar" として開始されるため、設定してもコントローラー属性は false として開始されます)。それは本当です...???)。
バグ?私の側の混乱?
ありがとう!