0
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);
        });

    }

在每个循环内什么都没有......我需要在这里像 p 一样制作 100 个变量还是有其他方法......

4

1 回答 1

1

您需要提供上下文,即this。“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

于 2012-08-22T07:28:53.693 回答