次のカスタムバインディングがあります
ko.bindingHandlers.dialogFor = {
init: function(el, valueAccessor) {
$(el).dialog();
var val = valueAccessor();
if(ko.isObservable(val))
$(el).on('dialogclose', function(){
val(null)
});
}
};
これにより、observable を設定するだけで、html フラグメントにdialogFor
バインディングをタグ付けしてダイアログを開くことができます。
残念ながら、渡された値は常にアンラップされるため、if チェックは決してパスせず、ダイアログを閉じたときにオブザーバブルをリセットすることはできません。
アンラップされた値だけでなく、渡された実際のオブザーバブルを取得するにはどうすればよいですか?