Как назначить значения из контроллера в директиву? - PullRequest
0 голосов
/ 18 июня 2019

При нажатии кнопки "Отмена" я уничтожаю элемент дерева представлений syncfusion, а при нажатии кнопки "Добавить" я хочу воссоздать его.Но когда я воссоздаю древовидное представление, я получаю консольную ошибку TypeError: Cannot use 'in' operator to search for 'modelChange' in null У меня есть директива использования для отображения данных в формате древовидного представления.

Ниже приведен код, написанный в директиве

$scope.treeFunction = function() {
    $("#treeView").ejTreeView({
        allowDragAndDrop: true,
        showCheckbox: $scope.allowCheckbox,
        cssClass: 'mytree',
        nodeCheck: function(args) {
            $scope.checkedNode();
        },
        nodeUncheck: function() {
            $scope.uncheckedNode();
        }
    });

    $scope.changeState('expand');
}

permissionTreeDesignerController.$inject = ['$scope', '$rootScope']
return {
    restrict: 'EA',
    replace: 'false',
    controller: permissionTreeDesignerController,
    templateUrl: '../modules/directives/permissionTreeDesigner/permissionTreeDesigner.html',
    scope: {
        treeNodes: '=',
        allowCheckbox: '=',
        roles: '=roles',
        selection: '=',
        checkedNode: '&checkedNode',
        uncheckedNode: '&uncheckedNode'
    },
    link: function(scope, element, attrs, ctrl) {}
}

Ниже приведеномой HTML-код для контроллера

<div class="modal-body bodySetting" ng-click="vm.openAddUserOrgModal()">
    <permissiontreedesigner ng-if="vm.orgTreeReady==true" tree-Nodes="orgTreeFormatedData" checked-Node="vm.checkedNode()" unchecked-Node="vm.uncheckedNode()" roles="rolesForAssignRoles" selection="selectedroles" allow-Checkbox="isallowcheckbox"></permissiontreedesigner>
</div>

vm.openAddUserOrgModal = function () { 
    //code to set value to the directive function and variable 
}
...