0

emberjs では、Em.Select を使用して、AJAX 経由で取得した JSON によって設定されたオプションのリストを表示しています。

{{view Em.Select
    valueBinding="profile"
    contentBinding="App.profiles"
    selectionBinding="profile"
    optionValuePath="content.id"
    optionLabelPath="content.name"
    prompt="Please select a profile"}}

作成フォームで使用すると期待どおりに機能しますが、編集フォームでは値が自動的に選択されません。

プレビュー リストで選択されているオプションに依存する 3 つの選択入力のチェーンがあるため、これが問題を引き起こしています。

JSONリストが入力されるまでオプションの選択を防ぐ方法を誰か説明できますか?

解決済み:

ご協力ありがとうございました。私が最終的にそれを機能させる方法は、次のように if ステートメントで選択ビューをラップすることでした。

 {{#if App.Profiles}}
     {{view Em.Select
         valueBinding="profile"
         contentBinding="App.profiles"
         selectionBinding="profile"
         optionValuePath="content.id"
         optionLabelPath="content.name"
         prompt="Please select a profile"}}
 {{/if}}

kroofy は、isLoaded プロパティを監視する if ステートメントでラップすることを提案しましたが、私のプロファイル オブジェクトにはプロファイルがないため、App.Profiles をチェックしてみましたが、うまくいきました。

4

1 に答える 1

1

おそらく、条件付きでラップできます。プロファイルがロードされたときにのみ選択を表示するようにします。

{{#if App.profiles.isLoaded}}
    {{view Em.Select
        valueBinding="profile"
        contentBinding="App.profiles"
        selectionBinding="profile"
        optionValuePath="content.id"
        optionLabelPath="content.name"
        prompt="Please select a profile"}}
{{/if}}

または、id を valueBinding に追加する必要があるだけかもしれません。

valueBinding="profile.id"
于 2013-09-03T12:03:25.433 に答える