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将传单对象作为参数传递是什么意思?我应该在哪里做呢?我很有信心错误在于你没有显示的代码。这没有理由不起作用。我在代码中删除了一行。我更新了问题。