Backbone:将集合标题和集合项放入一个json文件中

时间:2014-03-03 11:18:00

标签: json backbone.js

我的网站上有常见问题解答。 问题在json文件中,但我想在json文件中获得一些额外的信息(比如faq的标题)。 我的json文件如下所示:

{
    "titel": "FAQ title",
    "items": [
        {
            "question": "Question 1",
            "answer": "Answer 1"
        },
        {
            "question": "Question 2",
            "answer": "Answer 2"
        }
    ]
 }

集合扩展代码:

Faq.Collection = Backbone.Collection.extend({
    model: Faq.Model,
    url: '/scripts/json/faq.json',
    parse: function(response){
        return response.items;
    }
});

解析项目,因为这是用于渲染循环。 但是如何在页面上显示标题呢?

这是渲染功能:

render: function() {
        this.el.innerHTML = this.template({
            titel: 'Helpdesk'
        });

        console.log(this);

        this.collection.each(function( faqitem ) {
            var faqItemView = new Faq.Views.ModelView({ model: faqitem });

            this.$el.find('.faq').append( faqItemView.render().el );
        }, this);

        return this;
    }

我想把json文件中的标题放在'Helpdesk'所在的地方。

我希望我足够清楚

1 个答案:

答案 0 :(得分:1)

首先像这样更改你的解析函数:

parse: function(response){
    this.title = response.title;
    return response.items;
}

然后在你的渲染函数中:

this.el.innerHTML = this.template({
    titel: this.collection.title // pay attention to the titel not being title :)
});