Javascript 添加ng repeat会导致错误:$compile:ctreq

Javascript 添加ng repeat会导致错误:$compile:ctreq,javascript,angularjs,angularjs-directive,angular-leaflet-directive,Javascript,Angularjs,Angularjs Directive,Angular Leaflet Directive,我有一个需要传单指令的自定义指令,以便我可以访问控制器: restrict: 'E', require: '^leaflet', scope: { }, template: "", link: function(scope, element, attrs, controller) { } 当我在应用程序的控制器中使用自定义指令而不执行ng repeat时,它工作正常。像这样: 控制器的HTML不带ng repeat <leaflet defaults="defaults" cente

我有一个需要传单指令的自定义指令,以便我可以访问控制器:

restrict: 'E',
require: '^leaflet',
scope: {

},
template: "",
link: function(scope, element, attrs, controller) {

}
当我在应用程序的控制器中使用自定义指令而不执行
ng repeat
时,它工作正常。像这样:

控制器的HTML不带
ng repeat

<leaflet defaults="defaults" center="center" markers="markers" layers="layers" paths="paths">
  <ng-include src="/markers.html" />
  <my-directive 
    waypoints="wps">
  </my-directive>
</leaflet>
$scope.wps = [[32.745,-117.2776],[32.693,-117.3188]];
    <leaflet defaults="defaults" center="center" markers="markers" layers="layers" paths="paths">
        <ng-include src="/markers.html" />
        <my-directive 
            ng-repeat="(name, data) in routes"
            name="{{ name }}"
            waypoints="data.wps">
        </my-directive>
    </leaflet>
$scope.routes = {
  r1: {
    wps: [[32.745,-117.2776],[32.693,-117.3188]]
  }
}
但是,当我尝试添加
ng repeat
时,我最终得到以下错误:

Error: [$compile:ctreq] http://errors.angularjs.org/1.3.12/$compile/ctreq?p0=leaflet&p1=myDirective
控制器的HTML,带有
ng repeat

<leaflet defaults="defaults" center="center" markers="markers" layers="layers" paths="paths">
  <ng-include src="/markers.html" />
  <my-directive 
    waypoints="wps">
  </my-directive>
</leaflet>
$scope.wps = [[32.745,-117.2776],[32.693,-117.3188]];
    <leaflet defaults="defaults" center="center" markers="markers" layers="layers" paths="paths">
        <ng-include src="/markers.html" />
        <my-directive 
            ng-repeat="(name, data) in routes"
            name="{{ name }}"
            waypoints="data.wps">
        </my-directive>
    </leaflet>
$scope.routes = {
  r1: {
    wps: [[32.745,-117.2776],[32.693,-117.3188]]
  }
}

我搞砸了什么?

在你发出指令之前,你有
。您需要显式关闭该标记。请参阅。

我认为这是因为ng repeat创建了一个新范围。当您使用
ng repeat
时,需要将传单对象作为参数传递给每个行,因为您的子指令创建了独立的作用域,所以父层次结构将受到影响。由于您的孩子不需要父指令控制器上的
命令,因此可能会出现此问题。@aorfevre将传单对象作为参数传递是什么意思?我应该在哪里做呢?我很有信心错误在于你没有显示的代码。这没有理由不起作用。我在代码中删除了一行。我更新了问题。