向 jsTree 添加元数据

发布于 2024-10-14 07:21:50 字数 185 浏览 3 评论 0原文

我只是无法弄清楚这一点,也无法找到任何文档。

我有一个简单的 JSON:

{ “数据”:“节点”, “元数据”:{“内容”:“hellooooo”} 它

被加载,但我不知道如何写入该字段,检索该字段,并确保在创建新节点时创建它。

元数据的文档在哪里?

谢谢, 马可.

I just can not figure this out, or find any docs.

I have a bare-bones JSON:

{
"data": "node",
"metadata" : { "content": "hellooooo" }
}

This gets loaded, but I can not figure out how to write to this field, retrieve this field, and ensure that it is made when a new node is created.

Where are the docs for metadata?

Thanks,
Marco.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕梦 2024-10-21 07:21:50

我在 http://groups.google.com/group/jstree/browse_thread/thread/28d0c8d3eb2d9f8f 找到了答案

如果您使用 JSON 并交付
您的节点具有如下元数据:

{
"data":  "This is the name of the node",
"metadata": {
     "number": "no1",
     "description": "Description"
  }
}

...您将能够获取(并设置)
数据如下:

$('div#jstree').jstree(
/*  ...options...  */
).bind('select_node.jstree',
function(e, data){
     alert(  $(data.rslt.obj).data('description') 
 ); });

这适用于最新的提交
(rc3/r233)。在旧版本中它使用

$(data.rslt.obj).data("jstree").description 

最后一个对我有用的解决方案(现在默认下载是 rc2)。

I found the answer at http://groups.google.com/group/jstree/browse_thread/thread/28d0c8d3eb2d9f8f

if you're using JSON and you deliver
your nodes with a metadata like this:

{
"data":  "This is the name of the node",
"metadata": {
     "number": "no1",
     "description": "Description"
  }
}

...you'll be able to get (and set) the
data like this:

$('div#jstree').jstree(
/*  ...options...  */
).bind('select_node.jstree',
function(e, data){
     alert(  $(data.rslt.obj).data('description') 
 ); });

This works with the newest commit
(rc3/r233). In older versions it uses

$(data.rslt.obj).data("jstree").description 

The last solution worked for me (the default download for now is rc2).

被翻牌 2024-10-21 07:21:50

谢谢,我为此失去了理智。旧的例子都不起作用!
所以我终于可以访问元数据了,问题是我不知道如何迭代未知数量的元数据字段?

好的,现在我已经检查过它,并且可以在没有命名参数的情况下迭代 data() 返回的对象

.bind("select_node.jstree", function (e, data) {
    var propsObj = $(data.rslt.obj).data();
    for (var prop in propsObj) { 
       alert(prop + " = " + propsObj[prop] + "\n"); 
    }  
});

如果您需要避免 jstree_children 数组妨碍您,我认为最好的方法是将元数据封装到另一个对象中,如下所示:

"metadata" : {"properties" : {"prop1" : "aa1a", "prop2" : "123"}}

那么你可以使用以下方法进行迭代:

var metadata = $(data.rslt.obj).data();
for (var prop in metadata.properties) {...}

Thanks, I was losing my mind over that. None of the old examples worked!
So I finally can access metadata, the problem is that I don't know how to iterate over unknown number of metadata fields?

ok, now I have checked it and it possible to iterate over object returned by data() with no named parameters

.bind("select_node.jstree", function (e, data) {
    var propsObj = $(data.rslt.obj).data();
    for (var prop in propsObj) { 
       alert(prop + " = " + propsObj[prop] + "\n"); 
    }  
});

If you need to avoid jstree_children Array getting in your way, the best way in my opinion is to encapsulate metadata into another object like so:

"metadata" : {"properties" : {"prop1" : "aa1a", "prop2" : "123"}}

then you can iterate using:

var metadata = $(data.rslt.obj).data();
for (var prop in metadata.properties) {...}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文