Javascript AngularJS指令require parent指令不起作用

Javascript AngularJS指令require parent指令不起作用,javascript,angularjs,controller,require,directive,Javascript,Angularjs,Controller,Require,Directive,我想创建一个带有复选框的类别树,这是一个递归列表指令 我做了一个名为categoriesTreeContainer的指令,它包含所有类别列表 我做了另一个名为categoryItem的指令,它包含category项,它是categoriesTreeContainer的子项 这就是我在一个容器中所做的: } 对于类别项目: } 在DOM中: <categories-tree-container categoriestree="categoriesTree" ng-model="selecte

我想创建一个带有复选框的类别树,这是一个递归列表指令

我做了一个名为categoriesTreeContainer的指令,它包含所有类别列表

我做了另一个名为categoryItem的指令,它包含category项,它是categoriesTreeContainer的子项

这就是我在一个容器中所做的:

}

对于类别项目:

}

在DOM中:

<categories-tree-container categoriestree="categoriesTree" ng-model="selectedCategories"></categories-tree-container>
这棵树是我想要的。 问题是categoryItem指令中所需的控制器“^categoriesTreeContainer”无效。我在link函数中为categoriesTreeCtrl做了一个console.logcategoriesTreeCtrl,我得到的是:

c{},一个空对象

我做错了什么?

由于控制器没有任何内容,categoriesTreeCtrl将是void对象。如果需要访问categoriesTreeCtrl.onSelectionChange from child指令,则不应将onSelectionChange作为$scope的一部分,而应将其定义为控制器的属性

controller: function($scope, $element, $attrs){
      this.onSelectionChange = function(category){ ... };
 // $scope.onSelectionChange = function(category){...}
}
其他: 子指令上的categoriesTreeCtrl不等于$scope.categoriesTreeCtrl,这意味着您不能从模板调用categoriesTreeCtrl。查看ng更改值。

由于控制器没有任何内容,categoriesTreeCtrl将是void对象。如果需要访问categoriesTreeCtrl.onSelectionChange from child指令,则不应将onSelectionChange作为$scope的一部分,而应将其定义为控制器的属性

controller: function($scope, $element, $attrs){
      this.onSelectionChange = function(category){ ... };
 // $scope.onSelectionChange = function(category){...}
}
其他:
子指令上的categoriesTreeCtrl不等于$scope.categoriesTreeCtrl,这意味着您不能从模板调用categoriesTreeCtrl。查看ng更改值。

如果您制作了一些JSFIDLE,则更容易尝试。如果您制作了一些JSFIDLE,则更容易尝试。@Sn0opr,接受它!这样其他人就会从中受益,因为他们知道它解决了眼前的问题。我以前做过,但我认为这是一个bug,再做一次:@Sn0opr,接受它,而不是!这样,其他人就会从中受益,因为他们知道它解决了手头的问题。我以前做过,但我认为这是一个bug,再做一次:
controller: function($scope, $element, $attrs){
      this.onSelectionChange = function(category){ ... };
 // $scope.onSelectionChange = function(category){...}
}