0

我使用.中的指令成功加载了我的树AngularJS。现在我想在我的树中添加事件(这里选择节点),所以我确实喜欢这个。但我看不到我的警报。

我的代码:

app.directive('jstree', function() {
  return {
    restrict: 'A',
     scope: {
          jstree: '='
         }, 

link: function(scope, element, attrs) 
      {        
       scope.$watch('jstree', function() 
         {

           $(element).jstree({

                          "json_data" :{
                            "data":scope.jstree.data
                            },

                           "themes" : {
                                     "theme" : "classic",
                                      "dots" : true,
                                     "icons" : true
                                    },
                            "plugins" : [ "themes", "json_data" ]
                        }, false); 
            }, true);

            // select a node
            element.bind("select_node.jstree",function(e, data) {
     $window.alert(e.data);

                        });

             }
          };
});

知道我错了吗?

4

2 回答 2

1

要在 jstree 中使用事件,您必须在此行中添加“ui”:

“插件”:[“主题”,“json_data”,“ui”]。

现在它起作用了。

于 2013-07-11T10:50:49.943 回答
0

查看 jstree 演示,您将希望在 jstree 对象上调用 bind,而不是在元素上调用(您将能够绑定到click元素上,但这可能不是您想要的)

$(element)
  .jstree({
    "json_data" : {
        "data" : scope.jstree.data
    },
    "themes" : {
        "theme" : "classic",
        "dots" : true,
        "icons" : true
    },
    "plugins" : ["themes", "json_data"]
  }, false)
  .bind('select_node.jstree', function(ev,data) {
    console.log('clicked');
  });
于 2013-07-10T15:47:42.883 回答