2013-02-21 80 views
1

我使用此JSFiddle的代碼嘗試執行類似的操作(它使用Ember 0.9.3版本)。然而,當我使用較新版本的Ember(1.0.0-rc.1)的代碼時,第11行的輸入標籤中的handleBars bindAttr似乎不起作用。Emberjs bindAttr不支持ember版本1.0.0-rc.1

Here是同一個JSFiddle的版本,但使用新的Ember版本。您可以在輸出中看到已有的功能不在那裏。

Ember的新版本有哪些變化,我該如何補救?

這裏是一個在兩個JSFiddles相同的HTML:

<script type="text/x-handlebars"> 
{{view Em.RadioButton title="1" option="1" group="default" valueBinding="App.radio1"}} 
{{view Em.RadioButton title="Ohai" option="Words" group="default" valueBinding="App.radio1"}} 
{{view Em.RadioButton title="3" option="3" group="default" valueBinding="App.radio1"}} 
{{view Em.RadioButton title="Dog" option="Dog" group="default" valueBinding="App.radio1"}} 
{{view Ember.TextField valueBinding="App.radio1"}} 
</script> 

這裏是JS這是兩個JSFiddles相同:

(function(exports) { 
var set = Ember.set, get = Ember.get; 
Ember.RadioButton = Ember.View.extend({ 
title: null, 
checked: false, 
group: "radio_button", 
disabled: false, 

classNames: ['ember-radio-button'], 

defaultTemplate: Ember.Handlebars.compile('<label><input type="radio" {{ bindAttr disabled="disabled" name="group" value="option" checked="checked"}} />{{title}}</label>'), 

change: function() { 
Ember.run.once(this, this._updateElementValue); 
}, 

_updateElementValue: function() { 
var input = this.$('input:radio'); 
set(this, 'value', input.attr('value')); 
} 
}); 

})({}); 

App = Ember.Application.create({ 
radio1: "" 
}); 

回答

1

JSFiddle example

您需要使用view.propertyName來引用模板中的屬性:

defaultTemplate: Ember.Handlebars.compile('<label><input type="radio" {{ bindAttr disabled="view.disabled" name="view.group" value="view.option" checked="view.checked"}} />{{view.title}}</label>') 
+0

Git! http://jsfiddle.net/h75aN/ :( – Wildhoney 2013-02-21 23:18:43

+0

真棒謝謝你! – 2013-02-22 15:47:07