Knockoutjs.i を学習しようとすると、Knockoutjs カスタム バインディング関連のコードが見つかりましたが、あまり良くありません。
<input data-bind="value: name" />
<hr/>
<div data-bind="fadeInText: name"></div>
ko.bindingHandlers.fadeInText = {
update: function(element, valueAccessor) {
$(element).hide();
ko.bindingHandlers.text.update(element, valueAccessor);
$(element).fadeIn();
}
};
var viewModel = {
name: ko.observable("Bob")
};
ko.applyBindings(viewModel);
人々がいつカスタムバインディングを選ぶのか理解できませんか?
1) 可能であれば、カスタム バインディングがオプションになる状況をいくつか教えてください。
2) 誰かがコードを見れば、カスタムバインディングの fadeInText と viewModel には関係がないことを理解できますが、それでも機能しています。どうやって ?
3)複数のビューモデルがある場合、バインディング時にビューモデル名をバインディング名で指定するにはどうすればよいですか?
上記コードの jsfiddle リンクhttp://jsfiddle.net/rniemeyer/SmkpZ/
4) カスタム バインディングなしで同じ出力を実現する方法は? 可能でしたか?
私の質問に賢明に答えてください。ありがとう