我正在使用淘汰赛js。现在我使用模板选项和本地json数据作为数据源。在此我无法将数据绑定到模板中的节点。
请在下面获取我的HTML代码:
<div data-bind="template:{name:'treeTemplate',data:{da:Data}}"></div>
<script id="treeTemplate" type="text/html">
<b data-bind="text:$data.text"></b>
请获取我的脚本部分
var treeData = [
{ id: 1, text: "UK"},
{ id: 2, text: "Steven John" },
{ id: 3, text: "USA" },
{ id: 5, text: "Andrew" },
{ id: 4, text: "Angelica" }
];
window.viewModel = {
value: ko.observable(new Date(2015, 06, 15)),
Data: ko.observableArray(treeData)
};
$(function () {
// declaration
ko.applyBindings(viewModel);
});
我也在jsfiddle中更新了示例。请获取以下链接:
https://jsfiddle.net/38vnznht/
你可以请任何人建议吗。谢谢你的帮助。
答案 0 :(得分:1)
您的第一个问题是在模板对象中使用数据。
data:{da:Data}
用于遍历数组,您需要使用foreach
foreach:data
因此,您需要更新绑定
// from this
<b data-bind="text:$data.text"></b>
// to this
<b data-bind="text: text"></b>
这是一个工作示例: https://jsfiddle.net/wqe3s1vs/3/
此外,有关使用&#34; foreach&#34;的文档使用命名模板: http://knockoutjs.com/documentation/template-binding.html#note-2-using-the-foreach-option-with-a-named-template