如何在角度工作中进行嵌套嵌入
How to make nested transclusion in angular work?
我无法使嵌套嵌入工作。
有两个指令,它们都声明它们将包含其内容。当我嵌套它们时,内部没有任何内容。
这是这个小提琴,它证明了我的问题。
这是代码:
function Ctrl($scope) {
$scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
}
angular.module('transclude', [])
.directive('outer', function(){
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {},
template: '<div style="border: 1px solid black;">' +
'<div>Outer</div>' +
'<inner ng-transclude></inner>' +
'</div>'
};
}).directive('inner', function(){
return {
restrict: 'E',
transclude: true,
replace: true,
template :'<div style="border: 1px solid red;">' +
'<div>Inner</div>' +
'<div ng-transclude></div>' +
'</div>'
};
});
你应该在内部指令中ng-transculde,因为transclude取代了内部html
angular.module('transclude', []).directive('outer', function(){
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<div style="border: 1px solid black;">' +
'<div>Outer</div>' +
'<inner><div ng-transclude></div></inner>' +
'</div>'
};
});
无需更改内部指令。
我在这里更新了小提琴
执行此操作的另一种方法(在自包含组件中很有用)显示在此 JSFiddle 中
.directive('outer', function(){
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<div style="border: 1px solid black;">' +
'<div>Outer</div>' +
'<inner></inner>' +
'</div>'
};
})
.directive('inner', function(){
return {
restrict: 'E',
replace: true,
require: '^outer',
template :'<div style="border: 1px solid red;">' +
'<div>Inner</div>' +
'<div ng-transclude></div>' +
'</div>'
};
});
这会将 dom 树的transclude: true
传递到内部指令。
这样做的缺点是不能单独使用,并且在 jsfiddle 中它抛出一个 ngTransclude:孤儿指令错误
因此,我要求inner
指令是outer
指令的子指令,这样它将始终将隐含传递给它。
将大指令分解为小指令真的很好。
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何递归地获取嵌套对象中所有子对象的列表
- 返回嵌套JSON中包含特定键的所有值
- JavaScript:在嵌套循环中为数组赋值
- 如何以编程方式添加到可变嵌套对象中
- 如何在嵌套函数中获取$(this)
- 使用'这'在类中的嵌套函数中
- 在嵌套循环中处理 AJAX (Angularjs)
- 在嵌套组件中使用 react 组件时模块中断
- 如何从 json 嵌套结构中获取键的 json 值
- 嵌套ng中的Angularjs单选按钮重复未选中
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- 使用嵌套ng中带有单选按钮的ng模型重复不起作用
- 访问嵌套对象中父对象的属性
- Ionic/Angular:如何在嵌套json中导航
- Ember.js-隐藏嵌套资源中的父视图
- 聚合物数据绑定:如何访问嵌套模板中的数据
- Rails自动完成可以在父形式中工作,但不能在嵌套形式中工作.为什么
- 这是如何在嵌套函数中工作的
- 在嵌套控制器中绑定不工作