我在HTML中的多个位置使用ng-include src
指令。每个ng-include
都会为自己创建一个孤立的范围,这显然给我带来了很多麻烦。
例如。
<div ng-controller="parent">
<div ng-include src="'id1'">
</div>
<div ng-include src="'id2'">
</div>
<div ng-include src="'id2'">
</div>
</div>
在上面提到的html中,正在创建4个范围。 1在父级定义了controller
,默认情况下会在每个ng-include src
创建3个。
是否可以阻止ng-include
为自己创建一个孤立的范围?如果不可能,那么它有解决方法吗?
答案 0 :(得分:17)
您需要创建一个自己的指令,可以加载指定的模板而不需要隔离范围。
<强> HTML 强>
<div ng-controller="parent">
<div my-directive template-path="id1">
</div>
<div my-directive template-path="id2">
</div>
<div my-directive template-path="id2">
</div>
</div>
<强>指令强>
.directive('myDirective', function() {
return {
restrict: 'AE',
templateUrl: function(ele, attrs) {
return attrs.templatePath;
}
};
});