私はバックボーン、Javascript、jQuery 初心者であり、物事を理解しようとしています。私のバックボーン ビューには、次のメソッドがあります。
setError: function (selection, text) {
console.log("set error");
this.$el.find(selection).html(text);
this.$el.find(selection).show();
},
エラーフィールドにデータを入力する別のメソッドからこのメソッドを呼び出し、div に他のメッセージを追加したいと考えています。だから私は次のように setError を呼び出してみます:
populateErrors: function (sampleErrors) {
console.log("populateErrors");
_.each(sampleErrors, function (sample) {
// Set the error
this.setError('#sample-error', 'test');
$('#sample-validation-form').append('<p>testing</p>');
}, this);
}
私が理解していないのは、setError を呼び出す方法です。したがって、_.each ステートメントの外で呼び出すと、this.setError を実行できます。この Backbone オブジェクトで setError を呼び出しているので、これは理にかなっています。少なくとも私はそう解釈しています。それが間違っている場合はお知らせください。
しかし、_.eachステートメントでは、最後のパラメーターとしてステートメントをバインドしているので、setErrorの前にthis
は必要ないと思いました。this
しかし、それを試してみると、setError is undefined になります。そのため、上記のように試してみましたが、_.each ループの外でthis.setError
呼び出したときのように「テスト」出力が得られません。this.setError
この例でこの関数コンテキストがどのように機能するかを誰かに説明してもらえますか? 私は完全に混乱しています!前もって感謝します!