にこれを結合して、メソッド内で私が持っている:
$.each(response.error, function(index, item) {
this.$el.find('.error').show();
});
しかし、それは$.each
にだから、this.$el
は未定義です。
私はを持っていますが、それぞれの外部で動作します。だから、私はそれをバインドする必要がありますか?
何か助けてもらえますか?
にこれを結合して、メソッド内で私が持っている:
$.each(response.error, function(index, item) {
this.$el.find('.error').show();
});
しかし、それは$.each
にだから、this.$el
は未定義です。
私はを持っていますが、それぞれの外部で動作します。だから、私はそれをバインドする必要がありますか?
何か助けてもらえますか?
あなたはアンダースコアを持っているし、それはあなたが_.each
を有していることを意味するので、あなたはバックボーンを使用している:
各は
_.each(list, iterator, [context])
リストの要素を反復し、各要素を順に返します。 イテレータ機能。 イテレータは、コンテキストオブジェクトにバインドされていればそれにバインドされます。
だから、これを行うことができます:
_.each(response.error, function(item, index) {
this.$el.find('.error').show();
}, this);
それとも_.bind
を使用することができます。
$.each(response.error, _.bind(function(index, item) {
this.$el.find('.error').show();
}, this));
それとも、あなたは何度も何度も同じことを発見していることから、事前計算と停止を気にすることthis
:
var $error = this.$el.find('.error');
$.each(response.error, function(index, item) {
$error.show();
});
ここに2つのアンダースコアアプローチの簡単なデモがあります:http://jsfiddle.net/ambiguous/dNgEa/
恐ろしい、ありがとう! – dzm
がループする前に、ローカル変数を設定していただきありがとうございます:
var self = this;
$.each(response.error, function(index, item) {
self.$el.find('.error').show();
});
十分に簡単...ありがとう:) – dzm
Ack私はちょうど質問を再読しました、これは私が投稿したものの欺瞞ではありません。それを無視してください。ごめんなさい。 –