1

このJSFiddleのコードを使用して、同様のことを試みています (Ember バージョン 0.9.3 を使用)。ただし、新しいバージョンの Ember (1.0.0-rc.1) でコードを使用すると、11 行目の入力タグのハンドルバー bindAttr が機能していないようです。

これは同じ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>

そして、両方の JSFiddles で同じ JS を次に示します。

(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: ""
});
4

1 に答える 1

1

JSFiddle の例

以下を使用して、次のようにテンプレート内のプロパティを参照する必要があります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>')
于 2013-02-21T23:17:02.603 に答える