2012-04-25 8 views
2

私はKnockoutjsを使用して、ユーザーがドロップダウンで行った言語選択に基づいて、自分のウェブページ上のラベルの言語/コンテンツを動的に変更しようとしています。Knockoutjsを使用してページコンテンツをユーザーが言語選択に動的に適応させますか?

現時点で私は構文に苦しんでいます。 は私が何ができるかjsFiddle

に私の状況の例を提供してきました:

  • は選択の値(ID)を取得します。
  • 手動で次のようにインデックスを入力することにより、言語列から "選択" のラベルの内容を表示/取得します。私はできないことは何

    self.chosenLang = languages[0]; 
    

  • 選択の値(id)を使用してlanguages配列から "選択された"ラベルコンテンツを取得/表示します。このような何か:

    self.chosenLang = languages[self.selectedChoice]; 
    

答えて

1

私はあなたのフィドルを更新しました:http://jsfiddle.net/dWw7F/14/

私がやったことは、それが変化したときに、私が検出できるように、私はselectedChoice観測可能にサブスクリプションを追加したことです。サブスクリプションを持つ便利なことは、サブスクライバが呼び出されたときのパブリッシャの値が含まれているため、関数内の引数choiceです。

self.selectedChoice.subscribe(function(choice) { 
    self.chosenLang(languages[choice]);   
}); 

は、それから私は、DOMはそれに変更を検出させるためには、観察にchosenLangを促進しました。 chosenLang()は括弧を使用していることを

<p data-bind="text: chosenLang().q3"></p> 

注:この変更は、私はこれを使用していたHTMLにバインドを変更しました。それは観測可能なデータではなく観測可能なデータに直接アクセスするためです。

+0

ありがとうございました!私は実際にある時点でサブスクリプションを使用しようとしましたが、明らかに私はその時に間違ったことをしました。 –

関連する問題