オブザーバブルは複数の要素にバインドできるため、カスタム バインディングの形式で要素から実際に取得することをお勧めします。
最も単純には、次のようなバインディングを使用できます。
ko.bindingHandlers.flash = {
init: function(element) {
$(element).flash();
}
};
次のような要素で使用します<li data-bind="flash: true"></li>
。この場合、バインディングに何を渡すかは重要ではありません。
ここにサンプルがあります: http://jsfiddle.net/rniemeyer/Exmvh/
次のようなオプションを確実にバインディングに渡すことができます。
ko.bindingHandlers.flash = {
init: function(element, valueAccessor) {
var duration = ko.utils.unwrapObservable(valueAccessor());
$(element).hide().flash(duration);
}
};
次のように<li data-bind="flash: 500"></li>
使用するか、期間を制御するために使用できるオブザーバブルを使用します。<li data-bind="flash: selectedDuration"></li>
サンプルは次のとおりです: http://jsfiddle.net/rniemeyer/Exmvh/1/