Knockout.jsのko.dataForとko.contextForの使い道
よくわかってなかったのだけど、ko.dataFor
とko.contextFor
の使い道が理解できたのでメモ。
$('#link').on('click', function(event) {
console.log(ko.dataFor(this));
console.log(ko.contextFor(this));
});
もしくは
link.addEventListener('click', function(event) {
console.log(ko.dataFor(this));
console.log(ko.contextFor(this));
});
のような使い方をする。
Knockout.jsでバインドしていないハンドラからKnockout.jsが持っているコンテキストなどを取得する際に、
this
を渡すことで取得できるみたいだ。
ほとんどはKnockout.js側でイベントハンドラなどもバインドすると思うのだけど、例外的な場合に取得できるようにしてあるんだろうか。