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 回答