Заполнение URL AJAX в JSTree информацией о модели - PullRequest
0 голосов
/ 15 февраля 2012

Я заполняю представление JSTree командами ajax. Мой текущий код JS выглядит следующим образом

$(document).ready(function() {
        $("#navigation").jstree({
            "json_data": {
                "ajax": {
                    "url": function (node) {
                        var nodeId = "";
                        var url = "";
                        if (node == -1) {
                            url = "@Url.Action("BaseTreeItems", "Events")";
                        } else {
                            nodeId = node.attr('id');
                            url = "@Url.Action("EventTreeItems", "Events")" +"?selectedYear=" + nodeId;
                        }
                        return url;
                    },
                    "dataType": "text json",
                    "contentType": "application/json charset=utf-8",
                    "data": function(n) { return { id: n.attr ? n.attr("id") : 0 }; },
                    "success": function() {
                    }
                }
            },
            "themes": {
                "theme": "classic"
            },
            "plugins": ["themes", "json_data", "ui"]
        });
    });

Я бы хотел исключить оператор if из свойства "ajax" и заполнить его данными JSON, поступающими с сервера. Данные JSON выглядят следующим образом

[{"data":{"title":"2012","attr":{"href":"/Events/EventList?selectedYear=2012"}},"attr":{"id":"2012","selected":false,"ajax":"/Events/EventTreeItems?selectedYear=2012"},"children":null,"state":"closed"},.....]

Как мне передать свойство "ajax" из json в свойство "ajax" в JSTree?

1 Ответ

1 голос
/ 15 февраля 2012

Для дальнейшего использования я исправил это, выполнив следующее

.jstree({
            "json_data": {
                "ajax": {
                    "url": function (node) {
                        var url;
                        if (node == -1) {
                            url = "@Url.Action("BaseTreeItems", "Events")";
                        } else {
                            url = node.attr('ajax');
                        }
                        return url;
                    },
                    "dataType": "text json",
                    "contentType": "application/json charset=utf-8",
                    "data": function(n) { return { id: n.attr ? n.attr("id") : 0, ajax: n.attr ? n.attr("ajax") : 0 }; },
                    "success": function() {
                    }
                }
            },
...