我正在使用Dojo,并希望创建一个类似树的结构。但是,一旦特定分支中的末端节点被扩展,我希望能够在树中显示内容。 e.g。
top
- a branch
-- last item in this branch
[some content such as a div, span, image etc]
-- another item in this branch
[some more content]
等
有没有人知道是否可以使用dijit Tree实现这一点,如果有的话,是否有任何指针?
答案 0 :(得分:0)
在深入了解文档后,我找到了一种方法。它并不简单,所以我想分享。 This page有一个示例,说明如何使用富文本标签而不仅仅是文本显示树节点。这涉及声明自己继承自Tree._TreeNode的类,允许您控制它的创建。可以使用相同的技术。
创建树时,我按如下方式覆盖_createTreeNode函数:
_createTreeNode: function (args) {
if (args.item.type === "content") {
return new LayerManagerContentNode(args);
} else {
return new Tree._TreeNode(args);
}
}
在我的商店中,我添加了一个对象来表示我想要内联显示的内容,并为其提供一种内容'。
我创建了一个继承自Tree._TreeNode的类,如下所示:
定义([ "道场/ _base /声明&#34 ;, "道场/ _base /郎&#34 ;, "道场/ DOM&#34 ;, "道场/ DOM的构建&#34 ;, "道场/上&#34 ;, "的dijit /形式/按钮&#34 ;, "的dijit /树" ],function(declare,lang,dom,domConstruct,on,Button,Tree){ return declare(" my / ui / platforms / desktop / parts / LayerManagerContentNode",[Tree._TreeNode],{ //摘要: // ...
constructor: function () {
},
postCreate: function () {
var button = new Button({
label: "Test"
});
this.domNode.innerHTML = "<div></div>";
this.domNode.innterText = "";
button.placeAt(this.domNode, "first");
}
});
});
在postCreate中,我创建了一个按钮(这只是用于测试,我可能会创建一个内容窗格或某些东西以进一步填充)以显示代替通常的树节点。然后我将树节点innerHTML和innerText替换为隐藏通常显示的内容,瞧,它有效!
我敢说有更好的方法可以做到这一点,所以如果有人出现并有一个,请添加它。