私は残り火をいじり始めていますが、頭を包み込むことができなかったのは、一方向バインディングの使用方法です。次のコードを検討してください。
HTML
<script type="text/x-handlebars">
<h1>Some App</h1>
<p>
My Name is: {{name}}
</p>
<form {{action 'updateName' on="submit"}}>
{{view Ember.TextField valueBinding="name"}}
<input type="submit" value="Save">
</form>
</script>
JS
var App = Ember.Application.create();
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return {
name: 'John Doe'
}
},
events: {
updateName: function() {
console.log('Name Updated!');
}
}
});
デフォルトでは、Ember.TextField
の値はモデルにバインドされ、その逆も同様です。つまり、テキストを入力すると、モデルとビューがライブで更新されますが、私がしようとしているのは、モデルをテキストフィールドにバインドすることです (したがって、初期名が表示されます)、フォームが送信されたときにのみモデルを更新します。それを行う簡単な方法はありますか?
前もって感謝します。
編集:参考までに、使用するようにフィドルを更新しましEmber.Binding.oneWay
た。最終結果は@c4pの回答よりもきれいだと思います:http://jsfiddle.net/X2LmC/3/しかし、$('#user-name').val()
フィールド値を取得することが正しいやり方。