Knockout.js 使用knockout绑定树视图结构

Knockout.js 使用knockout绑定树视图结构,knockout.js,treeview,structure,using,Knockout.js,Treeview,Structure,Using,我正在使用循环绑定树视图结构。在我不必使用循环的情况下,有没有办法使用knockout绑定这个 下面是我用来生成树视图的循环: var items = viewModel.TreeView(); for (var i = 0; i < items.length; i++) { if (items[i].ParentMenuID == 0) { var html = '<li menuId="' + items[i].MenuID + '"><sp

我正在使用循环绑定树视图结构。在我不必使用循环的情况下,有没有办法使用knockout绑定这个

下面是我用来生成树视图的循环:

var items = viewModel.TreeView();
for (var i = 0; i < items.length; i++) {

    if (items[i].ParentMenuID == 0) {
        var html = '<li menuId="' + items[i].MenuID + '"><span class="arrow">&nbsp;</span>';
        html += '<span><a href="#" name="basenode" href="javascript:void(0);">' + items[i].MenuName + '</a></span></li>';
        $("#ulTree").append(html);
    }
    else {
        var html = '<ul><li menuId="' + items[i].MenuID + '"><span class="arrow">&nbsp;</span>';
        html += '<span><a href="#" name="endnode" href="javascript:void(0);">' + items[i].MenuName + '</a></span></li></ul>';
        $("#ulTree li[menuId='" + items[i].ParentMenuID + "']").append(html);
        $($("#ulTree li[menuId='" + items[i].ParentMenuID + "']").find(".arrow")[0]).addClass("collapse collapsible");
    }
}
var items=viewModel.TreeView();
对于(变量i=0;i';
html+='';
$(“#ulTree”).append(html);
}
否则{
var html='
  • '; html+='
'; $(“#ulTree li[menuId=”+items[i].ParentMenuID+“]”)追加(html); $($)(“#ulTree li[menuId='”+items[i].ParentMenuID+“']”)。find(“.arrow”)[0])。addClass(“可折叠折叠”); } }
上述代码的输出如下:


  • 您可以使用in-Knockout递归绑定树状结构。例如:

    var viewModel={
    树视图:可观察到({
    子节点:[
    {
    id:1,
    childNodes:[{id:2,childNodes:[{id:3,childNodes:[]}]}]
    },
    {
    id:4,
    childNodes:[{id:5,childNodes:[]}]
    }
    ]
    })
    };
    applyBindings(新的viewModel.TreeView())
    
    
    

    • 您可以使用in-Knockout递归绑定树状结构。例如:

      var viewModel={
      树视图:可观察到({
      子节点:[
      {
      id:1,
      childNodes:[{id:2,childNodes:[{id:3,childNodes:[]}]}]
      },
      {
      id:4,
      childNodes:[{id:5,childNodes:[]}]
      }
      ]
      })
      };
      applyBindings(新的viewModel.TreeView())
      
      
      

      • 淘汰码在哪里?你试过什么?调试?你读过KO文档和/或教程吗?淘汰码在哪里?你试过什么?调试?您是否阅读了KO文档和/或教程?