指令所需的控制器无法在Angular.JS中找到

时间:2014-07-06 16:30:45

标签: angularjs controller directive

正如标题所示,我在ng-view中使用父自定义指令(定义控制器)得到此错误,该指令用包含子自定义指令(需要父控制器)和ng-的模板替换内容重复。

我创建了a simple plunker来说明我的问题:

主要模板:

<div class="ng-view">
  <div data-my-parent></div>
</div>

路线:

  $routeProvider.when( '/', { 
    template: '<span>View loaded.</span>', 
    controller: [ '$scope', function( $scope ) { 
      $scope.items = [ 'item1', 'item2' ];}]});

父指令:

.directive( 'myParent', function() {
  return {
    replace: true,
    template: '<ul><li data-my-child data-ng-repeat = "item in items"></li></ul>',
    controller: [ '$scope', '$element', '$attrs', function( $scope, $element, $attrs ){}]};})

儿童指令:

.directive( 'myChild', function() {
  return {
    require: '^myParent',
    link: function( scope, element, attrs, controller ) {}};})

基本上,我认为它必须处理临时转录系统(对于ng-repeat),但我不确切地知道它是否是错误的编码或错误。摆脱这个错误的最佳方法是什么?需要可选的控制器&#39;?&#39; ?

1 个答案:

答案 0 :(得分:2)

ngView的内容将替换为路线的模板,因此您的<div data-my-parent></div>会丢失。