在骨干中循环+渲染

时间:2012-08-22 07:19:34

标签: backbone.js

render:function(output){
        _.each(output, function(i){
            p=i.name;
        });
        $(this.el).append(p);
    }

这里我以json的形式获得输出....我有100个名字......我想一个接一个地追加它...在这种情况下我得到一个名字.... 如果我这样说......

render:function(output){
        _.each(output, function(i){
            p=i.name;
            $(this.el).append(p);
        });

    }

每个循环里面什么都没来...... 我需要在这里制作100个像p这样的变量,还是有其他任何方式......

1 个答案:

答案 0 :(得分:1)

您需要提供上下文,即此。 “this”是对您正在使用的当前对象的引用。但是,当您从当前对象中调用其他函数时,您将丢失对当前对象的引用。基本上,这就是指函数。但你可以轻松解决这个问题。

将此作为参数添加到函数调用中:

render:function(output){
    _.each(output, function(i){
        p=i.name;
        $(this.el).append(p);
    },this);

}

或者通过辅助变量

提供
render:function(output){
    var self=this;
    _.each(output, function(i){
        p=i.name;
        $(self.el).append(p);
    });

}

我会选择选项1

相关问题