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

ここで、jsonの形式で出力を取得しています....100個の名前があります...そして、次々に追加したい...この場合、1つの名前を取得します....このように配置すると...

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 に答える