0

クリック イベントで 3 つの画像を使用して、要素 (下のフィドル コードの黄色のボックス) の可視性を制御しようとしています。機能していません。

次の可視性プロパティを定義しました

    IsSelectionPoll = ko.observable(true);
    IsBoolPoll = ko.observable();
    IsRatePoll = ko.observable();

クリックイベントは次のとおりです。

SetTypeId = function (typeId) {
  //selectPollType = typeId;
  $('<p/>').text(typeId).appendTo('body');
  IsSelectionPoll = (typeId == '1');
  console.log(typeId);
  IsBoolPoll = (typeId == '3');
  IsRatePoll = (typeId == '2');
 } 

SELF と this および他の多くのトリックを使用してみましたが、なぜ機能しないのかわかりません。

ここでコードを表示してください: http://jsfiddle.net/goldenrate/NfDyX/

ありがとう、デビッド

4

1 に答える 1

1

そこにビューモデルを作成していません-関数宣言を次のように変更します。

function PollWizardViewModel(initialData){

次に、バインディング行を次のようにします。

 ko.applyBindings(new PollWizardViewModel());

それが完了すると、クリックバインディング自体はそのまま機能するはずです。

編集:また、オブザーバブルを再割り当てせず、単にそれらの値を変更します。そうしないと、DOMとのバインディングが失われます(参照を再割り当てすると破棄される古いオブザーバブルとのリンクがあるため)-たとえば:

this.IsSelectionPoll = (typeId == '1');

使用する:

this.IsSelectionPoll(typeId == '1');
于 2013-03-19T21:11:01.883 に答える