我正在尝试使用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/
感谢, 大卫
答案 0 :(得分:1)
您没有在那里创建任何视图模型 - 将函数声明更改为:
function PollWizardViewModel(initialData){
然后绑定到:
ko.applyBindings(new PollWizardViewModel());
单击绑定本身应该像完成一样。
编辑:另外,不要重新分配您的observable,而只是更改它们的值,否则与dom的绑定将丢失(因为链接是与您重新分配时丢弃的旧观察者的链接参考) - 例如而不是:
this.IsSelectionPoll = (typeId == '1');
使用:
this.IsSelectionPoll(typeId == '1');