0

ここで新たに追加します。ビューとモデルの間でデータをバインドすると、一方が変更された場合に両方が同期されると思いました。

現在、色の配列を返す 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) に保持されません。何か間違ったことをしたのか、それともビューとモデルの間で変更を保存/同期するためのより良い方法があるのか​​ 疑問に思っています。

前もって感謝します!

4

1 に答える 1

0

add 関数にタイプミスがあるためかもしれません... this.pushObject(newColore); this.pushObject(newColor); である必要があります。

    add: function() {
    var newColor = {
      color: "#222222"
      };
      this.pushObject(newColor);

  }

幸運を

于 2013-11-28T11:44:19.443 に答える