gpt4 book ai didi

javascript - 如何使用 Knockout 模板在 Knockout 中创建树结构?

转载 作者:行者123 更新时间:2023-11-28 18:25:21 25 4
gpt4 key购买 nike

我正在与 Knockout 合作支持并现在创建树结构UI成分。在这里我将动态创建元素,在那里我想将数据绑定(bind)到新创建的元素。请使用以下代码进行检查

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<script type="text/html" id="tree">
<li menuid="data bind with attr binding">
<span>&nbsp;</span>
<span><a href="#" name="endnode"></span>
<ul data-bind="template: { name: 'tree', foreach: childNodes }">
</ul>
</li>

下面是我的脚本

 var viewModel = {
Mytree: ko.observable({
childNodes: [
{
id: 1,name:"node1",
childNodes: [ {id: 2, name:"node2", childNodes: [{id: 3,name:"node3", childNodes: [] }] } ]
},
{
id: 4,name:"node4",
childNodes: [ {id: 5,name:"node5", childNodes: [] } ]
}
]
})
};

ko.applyBindings(new viewModel.Mytree());

现在我想附加bindable树的节点名称如下:

<span><a href="#" name="endnode" data-bind:"text:childNodes.name"/></span>

<ul data-bind="template: { name: 'tree', foreach: childNodes }">

请有人建议我实现这一目标

最佳答案

如果你将 View 模型传递给它(你可以使用 $root 语法),你可以在绑定(bind)中使用“name”。当它沿着树向下移动时,上下文会发生变化...还有其他一些错误 - 其中一个是 data-bind= (等于,而不是冒号)

试试这个模板...

      <script type="text/html" id="tree">
<li menuid="data bind with attr binding">
<span>&nbsp;</span>
<a href="#" data-bind="text: name"></a>
<ul data-bind="template: { name: 'tree', foreach: childNodes }" />
</li>
</script>

并用它来开始(注意$root)

  <ul data-bind="template: { name: 'tree', data: $root }" />

这会给你...

enter image description here

关于javascript - 如何使用 Knockout 模板在 Knockout 中创建树结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com