2014-09-23 92 views
0

比方說,我有一些條件上backbonejs模板像這樣設置:trigget和事件時模型的變化和變化的模板數據,Backbonejs

<% if(model.get(attribute) === true) { %> 
     display X 
<% } else { %> 
    display Y 
<% { %> 

所有這些數據來自一個JSON文件,用不同的對象,其成我的模板被顯示成一個_.each()...所以,在一些前端交互之後,我設置了類似的東西。

myCollection.collection.at(0).set('attribute', false); 

所以問題是...我可以dinamilly改變前端「顯示Y」無需重新加載頁面或呼叫控制器後???

任何幫助,將不勝感激。

謝謝先進。

UPDATE

我的看法是這樣的:

myView = Backbone.View.extend({ 
    el: '.main', 

    render : function() { 
     template = _.template($('#myTemaplte').html(), { models : this.collection.models }); 
     this.$el.html(template); 
    } 
}); 



var theCollection = new Collections.myCollection; 
theCollection.fetch({ 
    success: function (data) { 
      myList = new myView({collection : theCollection}); 
    } 
}); 

和JSON文件看起來像:

data [ 
    { 
    "atribute" : false 
    }, 
    { 
    "atribute" : true 
    }, 
    { 
    "atribute" : false 
    }, 
] 
+0

告訴我您的視圖/控制器。 – StateLess 2014-09-23 17:28:07

+0

我沒有訪問API控制器,它只是返回一個json,其中我設置的屬性設置爲false,並且我的視圖上沒有任何其他內容比模板呈現,這就是爲什麼我沒有發佈它,它會使有什麼不同? – andresmijares25 2014-09-23 17:31:13

+0

我在問你的骨幹視圖,可能是我可以給它添加邏輯 – StateLess 2014-09-23 17:31:48

回答

0

試試這個

myView = Backbone.View.extend({ 
     el: '.main', 

     initalize : function(){ 
     this.listenTo(this.collection,'change',this.render); 
     }, 
     render : function() { 
      template = _.template($('#myTemaplte').html(), { models : this.collection.models }); 
      this.$el.html(template); 
     } 
    });