2016-01-26 2 views
1

Я использую angular-tree-control, я попытался с некоторым примером, что он работает нормально, но когда я добавляю атрибут options для включения multiSelect, он больше не выполняет управление деревьями. Here - это то, что я сделал.angular-tree-control not render data, когда предоставлен атрибут опций

Если вы удалите атрибут options, он отлично работает.


 

 
angular.module('app', ['treeControl']) 
 
    .controller('myController', function() { 
 

 
    }) 
 
    .directive('treeview', function() { 
 
    return { 
 
     templateUrl: 'temp.html', 
 
     link: function($scope, elem, attr) { 
 
     $scope.treeOptions = { 
 
      multiSelection: true 
 
     }; 
 
     $scope.selectedNodes = []; 
 
     $scope.treedata = createSubTree(3, 4, ""); 
 

 
     $scope.lastClicked = null; 
 

 
     function createSubTree(level, width, prefix) { 
 
      if (level > 0) { 
 
      var res = []; 
 
      for (var i = 1; i <= width; i++) 
 
       res.push({ 
 
       "label": "Node " + prefix + i, 
 
       "id": "id" + prefix + i, 
 
       "i": i, 
 
       "children": createSubTree(level - 1, width, prefix + i + ".") 
 
       }); 
 
      return res; 
 
      } else 
 
      return []; 
 
     } 
 
     } 
 
    } 
 
    });
.chzntree-search-results .treeselect-title { 
 
    margin-left: 41px !important; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://wix.github.io/angular-tree-control/angular-tree-control.js"></script> 
 

 
<link href="https://wix.github.io/angular-tree-control/css/tree-control.css" /> 
 
<link href="https://wix.github.io/angular-tree-control/css/tree-control-attribute.css" /> 
 

 
<div ng-app="app"> 
 
    <div ng-controller="myController"> 
 
    <span treeview></span> 
 
    </div> 
 
    <script type="text/ng-template" id="temp.html"> 
 
    <treecontrol class="tree-classic" tree-model="treedata" selected-nodes="selectedNodes" on-selection="showSelected(node, selected)" options="treeOptions"> 
 
     label: {{node.label}} ({{node.id}}) 
 
    </treecontrol> 
 
    </script> 
 
</div>

ответ

0

Я обновлен до here

Просто обработать модель дерева до DOM визуализации

compile: function compile(elem, attrs) { 
    return { 
       pre: function preLink($scope, element, attributes) { 
    $scope.treeOptions = {multiSelection: true}; 
     $scope.treedata=createSubTree(3, 4, ""); 
     $scope.selectedNodes = []; 


    function createSubTree(level, width, prefix) { 
     if (level > 0) { 
     var res = []; 
     for (var i = 1; i <= width; i++) 
      res.push({ 
      "label": "Node " + prefix + i, 
      "id": "id" + prefix + i, 
      "i": i, 
      "children": createSubTree(level - 1, width, prefix + i + ".") 
      }); 
     return res; 
     } else 
     return []; 
    } 
    } 
}; 

}