可见的绑定 - 淘汰JS

时间:2013-03-19 20:38:49

标签: knockout.js knockout-2.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和这个以及许多其他技巧,但我无法弄清楚它为什么不起作用。

请在此处查看代码: http://jsfiddle.net/goldenrate/NfDyX/

感谢, 大卫

1 个答案:

答案 0 :(得分:1)

您没有在那里创建任何视图模型 - 将函数声明更改为:

function PollWizardViewModel(initialData){

然后绑定到:

 ko.applyBindings(new PollWizardViewModel());

单击绑定本身应该像完成一样。

编辑:另外,不要重新分配您的observable,而只是更改它们的值,否则与dom的绑定将丢失(因为链接是与您重新分配时丢弃的旧观察者的链接参考) - 例如而不是:

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

使用:

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