在向viewmodel添加新内容时,Knockout if语句被忽略

时间:2012-08-05 04:23:48

标签: knockout.js knockout-2.0

这是我的最后一个淘汰赛问题:)

我有一个if语句设置,并且在第一次加载页面时正在工作,但是每当我尝试向视图模型添加任何新项时,if语句都不会被触发。

我的JS fiddle

为什么我第一次初始化viewmodel时会起作用,而不是在添加其他项目时。我没有收到任何错误

1 个答案:

答案 0 :(得分:0)

你需要在qtype上使用括号作为if表达式的一部分,即:

<!-- ko if: qtype() === 'Rating' -->

另外,您不想让您的arrayMap迭代器返回您的问题视图模型的实例吗?即:

self.questions = ko.observableArray(ko.utils.arrayMap(questions, function(question) {
    return new Question(question.question, question.qtype);
}));

这是一个更新的小提琴:

http://jsfiddle.net/wR6mb/15/