0

現在の質問を指すインデクサーであるメンバー(questions.current)を持つビューモデル(調査)があります。各質問には、画面にバインドする必要のあるプロパティ(.text)があります。シナリオは次のとおりです。

survey.questions.current.text
survey.questions.movenext()

画面上のテキストに現在の質問のテキスト値を表示させたい。先に進むにつれて、このテキストが自動的に更新されるようにしたいと思います。

これを処理する1つの方法は、movenextまたはmoveprevious関数が実行されるたびに自動的に更新される(ko.observable)survey.questions.currentTextプロパティを持つことです。ただし、画面上で更新する必要のある他の値(個々の質問に関連する選択肢を含む)があり、プロパティごとに重複を作成する必要がないため、これは最もクリーンなアプローチではない可能性があります。

質問テキストは変更されないため、textプロパティを監視可能にすることは適切ではありません。変更され、画面上のアイテムの更新をトリガーする必要があるのは、現在選択されている質問です。

これを処理する適切な方法は何ですか?

4

1 に答える 1

1

here およびthis fiddleで示されているように、withバインディングは 1 つのオプションです。は観察可能であるため、バインディングが観察不可能なプロパティに対するものであっても、仮想要素はそれで更新されます。currentQuestion

<!-- ko with: currentQuestion-->
    <span data-bind="text: text"></span>
<!-- /ko -->​

実際にどのように選択を変更しているのかわからなかったので、 に結び付けただけselectですが、選択は好きなように行うことができます。

于 2012-08-16T22:52:28.523 に答える