2013-11-28 39 views
0

這裏新增了一些內容,我想如果你將視圖和模型之間的數據綁定在一起,那麼如果改變的話雙方都會同步。當視圖改變時,Ember.js更新模型?

目前,我有餘燼我的模型設定,它返回的顏色數組:

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}} 

我有一個按鈕來添加新顏色的array:

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)。我想知道如果我做錯了什麼,或者有更好的方法來保存/同步視圖和模型之間的變化。

在此先感謝!

回答

0

可能是因爲您的添加函數中存在拼寫錯誤... this.pushObject(newColore);應該是this.pushObject(newColor);

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

    } 

好運

+0

謝謝您的回答。是的,我確實有一個錯字:(但是我的問題是在視圖的click函數中,並將它與模型綁定在一起。我可以將新對象推送到模型中(修復錯字之後),但對視圖的更改不會推送到模型。 – Poyi

相關問題