У меня есть директива, использующая компонент angular-ui-tree внутри проекта asp.net mvc, он отлично работает, но каждый раз при рендеринге дерева с более чем 9 уровнями появляется серьезная ошибка.
Для этого у нас есть открытая проблема , но она все еще не объединена с главной веткой, в любом случае, мне нужно найти обходной путь, это мой код:
Директива:
(function () {
"use strict";
angular
.module("app.users")
.directive("columnConfigurationA", [
function () {
return {
restrict: "E",
scope: {
columnConfig: "=columnConfig"
},
link: {
pre: function (scope) {
}
},
controller: ["$http", "$scope", "$uibModal", "modalMsgSrv",
function ($http, $scope, $uibModal, modalMsgSrv) {
$scope.columnConfig = [];
$scope.carePlans = [];
getColumnConfiguration(params, $http).success(function (data) {
$scope.columnConfig = setVisibleColumns(-1, data.columns);
$scope.carePlans = data.carePlans;
});
}],
templateUrl: '/sbusA/ColumnConfigurationA'
};
}]);
function getColumnConfiguration(params, $http) {
var url = "/SbusA/GetColumnConfigurationA";
return $http.get(url, { params: params });
}
})();
HTML:
<div class="plan-edit-cont">
<div class="sorteable">
<script type="text/ng-template" id="nodes_renderer.html">
<div class="checkbox c-checkbox mb0 mt-sm inline align-top">
<label><input type="checkbox" ng-disabled="edition" ng-model="node.show" ng-click="disableChildrens(node)"><span class="fa fa-check"></span></label>
</div>
<div class="text-inverse inline" ui-tree-handle>
{{node.title}}
</div>
<a role="button" class="flow-icon-sort ml-lg mr fr drag-icon draggable" ng-hide="edition" dnd-handle><i class="fa fa-sort" aria-hidden="true"></i></a>
<a role="button" class="flow-icon-plus ml-lg fr drag-icon" ng-hide="edition" ng-click="editVital(node)"><i class="fa fa-pencil" aria-hidden="true"></i></a>
<ul class="sub-questions-list" ui-tree-nodes="" ng-model="node.columnChilds">
<li ng-repeat="node in node.columnChilds" ui-tree-node ng-include="'nodes_renderer.html'">
</li>
</ul>
</script>
<div ui-tree>
<ul style="list-style: none;" ui-tree-nodes="" ng-model="columnConfig" id="tree-root" dnd-list="columnConfig" dnd-allowed-types="['node']">
<li ng-if="node.visibleColumn === true" ng-repeat="node in columnConfig" ui-tree-node ng-include="'nodes_renderer.html'" dnd-draggable="node" dnd-type="'node'" dnd-moved="removeVital(node)"></li>
</ul>
</div>
</div>
</div>
Это ошибка, которую я получаю, когда у меня более 9 уровней дерева:
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: