クリック、変更、バインディングに建てられた値のデフォルトのように使用する:
ko.bindingHandlers.isolatedOptions = {
//element, valueAccessor, allBindings, viewModel, bindingContext
init: function (element, valueAccessor) {
var args = arguments;
ko.computed({
read: function() {
ko.utils.unwrapObservable(valueAccessor());
ko.bindingHandlers.options.update.apply(this, args);
},
owner: this,
disposeWhenNodeIsRemoved: element
});
},
update: function (element, valueAccessor)
{
var args = arguments;
ko.computed({
read: function()
{
ko.utils.unwrapObservable(valueAccessor());
ko.bindingHandlers.options.update.apply(this, args);
},
owner: this,
disposeWhenNodeIsRemoved: element
});
}};
これは、使用される方法です。 HTML要素のデータバインド属性を使用してコード内で使用する必要があります。もっとここに
http://knockoutjs.com/documentation/custom-bindings.html
あなたの要素
チェックは選択であり、あなたのvalueAccessorはroot.procurementTypes $です。 initは、要素選択の初期状態が設定されているときに呼び出されます。パラメータを受け取り、init関数を実行します。 observablesや計算されたものを使用していて変更がある場合、updateはknockout jsによって複数回呼び出すことができます。これは、バインディングの適用時にも当初呼び出されます。
私はMaterialTypeフィールドがAJAX からフォームのロード時に読み込ま取得されていない問題に直面しています[リンク] http://jsfiddle.net/n0mrjzf4/ MaterialTypesは、Ajaxと設定データから設定されているフィドルでMaterialTypeプレースホルダに値を設定する必要があります。 –
基本的に、ノックアウトのプロパティにデータをバインドするのと同じくらい良いです。それは1つ以上のフィールドですか?私は別の質問を提起し、そこに同じコードを共有することを提案します。根本的な原因を簡単に特定するのに役立ちます。 – Amit