-1

これはJavaScriptノックアウトに関するものです

HTML

この行を実行すると、[オブジェクト、オブジェクト] が得られます

 <p><select data-bind="options: availableRole"></select></p>

この行を実行しても何も得られません

    <p><select data-bind="options: availableRoles, value: availableRoles().title, optionText: 'availableRoles().title'"></select></p>

ジャバスクリプト

    self.availableRoles = [

        { title: "Programmer" },
        { title: "Designer" }

    ];   

タイトルのプログラマーとデザイナーを表示するにはどうすればよいですか?

4

5 に答える 5

0

これらの答えがすべて欠けていることの1つは、ビューモデルで選択した役割を追跡する機能です。このために、オプションバインディングに加えてバインディングを使用します。

これが動作するjsfiddleです:

便宜上、貼り付けたコードは次のとおりです。

var viewModel = {
    availableRoles: [
        { title: "Programmer"},
        { title: "Designer" }
    ],
    selectedRole: ko.observable()
};
ko.applyBindings(viewModel);​


<select data-bind="options: availableRoles, optionsText: 'title', optionsCaption: 'Select...', value: selectedRole"></select>
<pre data-bind="text: JSON.stringify(ko.toJS(selectedRole), null, 2)"></pre>

</ p>

于 2012-10-18T15:41:17.927 に答える
0
<select data-bind="options: availableRoles, optionsText: 'title', optionsCaption: 'Choose...'"></select>

詳細については、「オプション」バインディングを参照してください。

于 2012-10-17T15:11:31.470 に答える
0

ドキュメントoptionsTextで説明されているように、バインディングを使用して子の値にバインドできます。

<select data-bind="options: availableRoles, optionsText: 'title'"></select>

ここで実例を見ることができます。

于 2012-10-17T15:09:44.073 に答える
0

optionsTextバインディングでプロパティ名を指定する必要があります。

<select data-bind="options: availableRoles, optionText: 'title'"></select>
于 2012-10-17T15:10:26.673 に答える
-1

解決策は次のとおりです。

 <select data-bind="options: availableRoles, optionsText: 'title'"></select>
于 2012-10-17T17:15:37.613 に答える