2016-03-24 9 views
1

Ich arbeite mit jstree und angularjs. Ich habe den Pfad und den Namen der Knoten, kann sie aber nicht auf einer Seite anzeigen. Wo ist mein Fehler? Ich habe plunker (funktioniert) Beispiel mit ng-Baum-Direktive mit meinem Problem aktualisiert. Jetzt ist es ziemlich nah an meiner appangular wird keine Scope-Variable anzeigen (fertig)

auch stelle ich den Code von Plunker hier

Html:

<h1>Where is my variable?!</h1> 
     <div>{{ test }}</div> 
    <pre>Path to A: {{ pathA }}</pre> 
    <pre>Path to B: {{ pathB }}</pre> 
     <pre>Path to C:{{ pathC }}</pre> 
<js-tree tree-data="json" tree-src="tree.json" 
        tree-events="changed:callback;"></js-tree> 

Js

$scope.test = "I'm test variable" 

    $scope.callback = function (e, data) { 

     // ===== Click event on node for Industry ===== 
     for (var i = 0; i < data.selected.length; i++) { 

      var parentNodeId = data.instance.get_node(data.selected[i]).parent; 
      var parentNodeText = data.instance.get_node(parentNodeId).text; 
      var selectedNodes = data.instance.get_selected(); 

      var node = data.instance.get_node(data.selected[i]).text; 

      console.log(node); 

      if (node == "a"){ 
        console.log($scope.pathA) 
      $scope.pathA = data.instance.get_path(data.node,'/'); 

      } 
      else if (node == "b"){ 
       console.log($scope.pathA) 
       $scope.pathB = data.instance.get_path(data.node,'/'); 

      } 
      else if (node == "c"){ 
       console.log($scope.pathA) 
      $scope.pathC = data.instance.get_path(data.node,'/'); 

      } 
      // and etc.... 
     } 
    } 
+1

Sie sollten jQuery nicht mit eckigen verwenden .. Sie sollten wirklich [Sache von auf eckige Version von js-Baum wechseln] (https://github.com/ezraroi/ngJsTree) –

+0

@ PankajParkar, Ich benutze [eine andere js-tree eckige Direktive] (https://github.com/arvindr21/jsTree-directive) in der App, ich habe nur einfaches Beispiel – Anton

+0

Ihren Code zur Verfügung gestellt nur jQuery-Version davon angezeigt. und nichts wurde damit umgesetzt. –

Antwort

2

Ihre jstree keine Änderungserkennung verursacht, Das bedeutet, dass der Callback auch nicht und keine Ihrer Variablen aktualisiert wird. Sie können dies beheben, indem Sie im Callback manuell $scope.$apply() aufrufen!

+0

vielen Dank Mann! du hast meinen Tag gerettet! – Anton

Verwandte Themen