2016-12-25 69 views
0

需要幫助,無法理解如何將模型的每個視圖附加到DOM中的每個現有DIV(具有div.container和div.widget數組)。將模型的視圖附加到骨架中的現有DIV

// Model 
V.Models.Shortcode = Backbone.Model.extend({}); 

// Shortcodes Collection Init 
V.Collections.Shortcodes = Backbone.Collection.extend({ 
    model: V.Models.Shortcode, 
}); 

當的iframe裝載,推存儲從服務器到集合:

$('#preview').on('load', function() { 

var ShortcodesCollection = new V.Collections.Shortcodes(Vision.ShortcodeStorage); 

var Preview = new V.Views.Preview({ 
    collection: ShortcodesCollection, 
    el: $('.container') 
}); 

Preview.render(); 

}); 

渲染採集預覽:

// Collection View in iframe 
V.Views.Preview = Backbone.View.extend({ 

initialize: function() { 
    this.collection.on('add', this.addOne, this); 
}, 

render: function() { 
    this.collection.each(this.addOne, this); 
    return this; 
}, 

addOne: function(ad) { 
    var shortcodeView = new V.Views.Shortcode({ model: ad }); 
    shortcodeView.render(); 
} 
}); 

查看每個型號:

// Shortcode View 
V.Views.Shortcode = Backbone.View.extend({ 
events: { 
    'click .widget' : 'SomeActionOnView' 
}, 

render: function(){ 
    //console.log(this.el); 
    //console.log(this.model.toJSON()); 
}, 

SomeActionOnView: function(){ 
    console.log(this); 
} 
}); 

問題是,如何將V.Views.Shortcode附加到每個具有「widget」類的div來綁定事件。謝謝!

+0

您是否想在div下添加您的所有視圖?class「widget」? – Nitesh

+0

@Nitesh希望將每個視圖添加到每個視圖.widget – 20yco

+0

您是否需要爲每個視圖創建一個新的div.widget? – Nitesh

回答

0

你能試試嗎?

V.Views.Shortcode = Backbone.View.extend({ 
    events: { 
     'click .widget' : 'SomeActionOnView' 
    }, 

    render: function(){ 
     //code here to write stuff of this.$el 
     $("div.widget").append(this.$el); 
    }, 

    SomeActionOnView: function(){ 
     console.log(this); 
    } 
    }); 
+0

請稍等片刻,將嘗試 – 20yco

+0

不,這不會返回任何內容 – 20yco

+0

它只會在div.widget中追加當前視圖。 如果你的UI上有div.widget div,你會看到你的視圖出現在那裏。 這是一個骨幹視圖。如果你想返回當前視圖,你可以在最後寫回傳。 – Nitesh

相關問題