我刚开始使用 Knockout.js,我有一个关于动态 HTML 的查询。
我正在创建一个动态问卷。这有;
- 主要问卷视图模型,其中包含...
- 一个 observableArray 的页面,其中包含...
- 一个可观察的问题数组,其中包含...
- 一系列选项。
我已经使用 $.map 函数映射了我的选项,例如;
this.options = $.map(questionOptions, function(text) {
return new Option(text)
});
我在 ViewModel 中动态生成一些 html,但是当我尝试将选项文本连接成一组单选按钮时;
var htmlContent = '';
ko.utils.arrayForEach(_self.options, function (item) {
htmlContent += '<input type="radio" name="' + ko.utils.unwrapObservable(_self.questionNumber) + '" data-bind="attr: {value: value}, checked: $root.selected" />\r\n';
htmlContent += '<span>\r\n';
htmlContent += item.optionText;
//htmlContent += ko.utils.unwrapObservable(item.optionText); // Doesn't Work
//htmlContent += item.optionText(); // Doesn't Work
htmlContent += '</span>\r\n';
});
return htmlContent;
我最终得到了一堆;
[object Object]
我已经尝试了几种替代方案,但对去哪里有点卡住了..
我不确定如何使用模板,因为我计划将文本框、单选按钮、下拉菜单、列表等放在一起。但也许我的知识只是在这里缺乏!?
这是一个带有一些示例代码的 jsFiddle;
http://jsfiddle.net/PGallagher69/wA6mQ/21/
有任何想法吗?