簡體   English   中英

渲染嵌套模型把手?

[英]Rendering a nested model handlebars?

我有這樣的數據結構。

var myModel {
    _id: 798698,
    username: "John",
    message: {
        message1: "Some cool messsage",
        message2: "I'm mad Ohio State lost"
    }
}

message對象有些棘手。 在我的車把模板中。

{{#each message}}
    <div class="message">
        {{../username}}: {{this}}
    </div>
{{/each}}

然后,當渲染輸出時,將顯示以下內容。

<div class="NCAA">
    <div class="NBA">
        <div class="message">steve: What?</div>
        <div class="message">steve: Okay?</div>
        <div class="message">steve: Hey</div>
    </div>

    <div class="NBA"></div>

    <div class="NBA">
        <div class="message">
            Iowastate: Hey nikeman
        </div>
    </div>
</div>

類名來自主干視圖,但是問題是模板被div包裝,並且我不確定如何防止這種情況,因此它只是.message的列表..我也無法確定為什么有一個空的div,我有些懷疑,但不能指點它。

這是主干視圖代碼,僅用於向您展示事物的渲染方式。

var Marionette = require('backbone.marionette');

var ChatView = Marionette.ItemView.extend({
    className: 'NBA',
    template: require('../../templates/message.hbs')
});

module.exports = CollectionView = Marionette.CollectionView.extend({
    className: 'NCAA',
    initialize: function() {
        this.listenTo(this.collection, 'change', this.render);
    },
    itemView: ChatView
});

在骨干網中, 每個視圖都與一個el相關聯。 在實例化時,如果不為視圖提供el,則骨干網將使用空DIV。 我想這就是您的情況。

因此,在實例化視圖時,只需提供如下的el元素:

var myView = new ChartView({ el: $('.myElementForView') })

Backbone View el文檔中閱讀此文本

所有視圖始終都具有DOM元素(el屬性),無論它們是否已經插入到頁面中。 以這種方式,視圖可以隨時呈現,並一次全部插入到DOM中,從而以盡可能少的重排和重畫獲得高性能的UI呈現。 this.el是從視圖的tagName,className,id和attributes屬性(如果指定)創建的。 如果不是,則el為空div。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM