ここで新たに追加します。ビューとモデルの間でデータをバインドすると、一方が変更された場合に両方が同期されると思いました。
現在、色の配列を返す Emberfire を使用してモデルをセットアップしています。
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return EmberFire.Array.create({
ref: new Firebase("https://ember-starter.firebaseio.com/shape")
});
},
setupController: function(controller, model) {
controller.set('model', model);
}
});
私のテンプレートは次のように設定されています:
<button {{action "add"}}>Draw</button>
{{#each controller}}
{{#view App.ShapeView contentBinding="content"}}
<div>{{color}}</div>
{{/view}}
{{/each}}
配列に新しい色を追加するボタンがあります:
App.ApplicationController = Ember.ArrayController.extend ({
actions: {
add: function() {
var newColor = {
color: "#222222"
};
this.pushObject(newColor);
}
}
});
ビュー内で、色のプロパティを設定するためのクリック アクションを設定します。
App.ShapeView = Ember.View.extend({
click: function() {
var self = this;
var changeColor = self.set('context.color', '#121212');
}
});
現在のセットアップでは、色のリストを取得/表示し、クリックすると色を #121212 に変更できます。ただし、データはモデル (firebase) に保持されません。何か間違ったことをしたのか、それともビューとモデルの間で変更を保存/同期するためのより良い方法があるのか 疑問に思っています。
前もって感謝します!