1

KnockoutJS を使用して Kendo Combox に入力しました。そのために Knockout-Kendo.js を使用しています。

http://rniemeyer.github.com/knockout-kendo/web/ComboBox.html

k1 アドレスと郵送先アドレスの 2 つのアドレスがあります。

両方の住所で、州のコンボ ボックスから州を選択すると、国のコンボ ボックスが無効になり、米国が選択されます。

州コンボ ボックスから州を削除するか、存在しない州を手動で入力すると、国コンボ ボックスが有効になります。米国以外の国を選択すると、州のコンボ ボックスが無効になります。

k1アドレスで機能しました。

<input data-bind=" kendoComboBox: { enabled: k1Address.isStateMutable,  dataTextField: 'Name', dataValueField: 'Id', data: states, value: k1Address.stateId }" />

問題はメールアドレスです。「別の郵送先住所」チェックボックスもあるので、両方の条件をチェックする必要があります (有効: isK1MailDifferfrmAddress && mailingAddress.isStateMutable )。( enabled: isK1MailDifferfrmAddress ) または (enabled: mailingAddress.isStateMutable) を実行すると、両方とも機能します。両方をチェックすると、なぜ機能しないのかわかりません。

<input data-bind=" kendoComboBox: { dataTextField: 'Name', dataValueField: 'Id', data: states, value: mailingAddress.stateId, enabled: isK1MailDifferfrmAddress && mailingAddress.isStateMutable }" />

コードを jsFiddle にアップロードしました。そこでテストできます。

http://jsfiddle.net/gatuV/1/

実行すると、郵送先住所の都道府県と国のコンボ ボックスが無効になるはずですが、そうではありません。

4

1 に答える 1

3

通常、オブザーバブルまたは計算されたオブザーバブルを含む式を使用する場合は、それぞれを次のような関数として呼び出すようにする必要があります myoption: observableA() + computedB()

ただし、実際には Kendo バインディングには、オブザーバブルまたは直接計算された (または静的な値) が必要です。したがって、有効な概念を表す計算済みが必要になります。

たとえば、「別のアドレス」フラグをアドレス コンストラクターに渡し、使用している変更可能な計算の一部として使用できます。

ここにサンプルがあります:http://jsfiddle.net/rniemeyer/gatuV/6/

于 2012-11-03T01:51:28.157 に答える