JsTree with custom json data

2019-04-07 07:59发布

问题:

I have this structure in json I can not be modified by request.

{
        "Object": [
            {
                "url": "http://www.google.com"
            }            
        ],
        "id": 1,
        "name": "Redirection Rule",
        "Object": {
            "frequency": 1,
            "trigger": 1
        },
        "Object": {
            "http": "Redirect Url",
            "response": 301
        }
    }

I need to use this structure to populate a jstree . I just need to use the "id" fields and "name", how do I set jstree to use "name" instead of "text" as a node name ?

回答1:

Either:

1) use the jQuery dataFilter option (this means defining a function for dataFilter in your core.data jsTree config),

or

2) set core.data itself to a function, manually make the request and transform it like so:

$('#your-tree').jstree({
    core : {
        data : function (node, cb) {
            $.ajax({ url : ... }).done(function (data) {
                cb([{ "id" : data.id, "text" : data.name }])
            });
        }, ...

You can find more info on setting core.data to a function here: https://github.com/vakata/jstree#populating-the-tree-using-a-callback-function