6
在我看來,我有一個按鈕,我想被禁用時,模型的數據是不髒。bindAttr反向布爾
當我輸出:<button {{ action "update" }} {{bindAttr disabled="isDirty"}}>Save</button>
當數據是不髒當數據是髒的被啓用,和禁用。
我要扭轉,所以我嘗試這樣做:<button {{ action "update" }} {{bindAttr disabled="!isDirty"}}>Save</button>
但現在是不檢查dirtyness可言。如何反轉bindAttr幫助器中的布爾值?
這裏是我的代碼:
控制器
App.SiteController = Em.ObjectController.extend({
isNotDirty: function() {
return !this.get('isDirty');
}.property('content')
});
App.SiteEditController = Em.ObjectController.extend({
needs : [ 'site' ]
});
模板
{{#with controllers.site}}
<div>{{ isDirty }}</div>
<div>{{ isNotDirty }}</div>
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
{{view Ember.TextField valueBinding="name"}}
</div>
</div>
<div class="form-actions">
<button {{bindAttr disabled="isNotDirty"}} class="btn btn-primary">Save</button>
</div>
{{/with}}
我輸出的isDirty
的isNotDirty
財產,所以我能看到他們改變。但是,只有isDirty
屬性在更改文本字段的值時發生變化,
您可以創建一個計算的屬性,即反轉。你可以做類似'... isNotDirty:function(){return!this.get('content.isDirty'); } .property('content'),...'在**項目控制器**('ObjectController')中,並綁定到該屬性:'' – MilkyWayJoe 2013-03-07 15:38:05
嘗試使用.property( 'content.isDirty') 現在應該工作。 – mavilein 2013-03-07 15:53:38
這可行,但是當我刪除'