Backbone,获取除集合中的数据之外的参数

时间:2014-09-22 14:47:05

标签: backbone.js

鉴于以下json:

 { 
   "admin": false,
   "data": [
     {
      value: key, 
      value :key
     },
     {
      value: key, 
      value :key
     }
    ]
 }

我这样定义了我的收藏:

 var myCollection = Backbone.Collections.extend({
     url: myurl.com,
     parse : function (response) {
        return response.data;
     }
 }); 

它就像魅力一样,它用数据数组填充我的集合,但是,在模板中,我需要在管理员等于true时呈现一些内容。但我找不到将该值传递给模板的方法。

你们有什么机会可以指出正确的方向来解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以将admin标志保存为parse方法中集合的属性:

var myCollection = Backbone.Collection.extend({
    model: myModel,
    isAdmin: false,
    ...
    parse : function (response) {
        this.isAdmin = response.admin; //save admin flag from response
        return response.data;
    }
});

然后你可以检索它并将其传递给你的模板或在视图渲染方法中以任何其他方式使用它:

var myView = Backbone.View.extend({    
    collection: new myCollection(),
    ...
    render: function(){
        //retrieve admin flag from collection:
        var isAdmin = this.collection.isAdmin;

        //you could add it into the json you pass to the template
        //or do anything else with the flag

    }                               
});

您可以使用非常基本的渲染功能尝试this fiddle