Backbone.js ,获取集合中数据以外参数

f2uvfpb9  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(134)

给定以下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;
     }
 });

它的工作原理就像charm一样,它用数据数组填充我的集合,但是,在tamplate中,当admin等于true时,我需要呈现一些内容。但是我找不到一种方法将该值传递给模板。
你们中有没有人能指出解决这个问题的正确方向?

a6b3iqyw

a6b3iqyw1#

您可以将管理标志保存为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的一个非常基本的渲染函数。

相关问题