我使用controller as
语法。在此范围内,我有一个指令可以转换访问此控制器的内容。该控制器似乎无法从ng-transclude中获取。
DEMO:http://plnkr.co/edit/ZYPCym2WQV43wh4R4nwI?p=preview
在转换内容中使用控制器是否有限制?
答案 0 :(得分:0)
我认为你正在使用ng-controller
指令的方式混淆了b / c。不幸的是,我无法解释原因,但你设置控制器的方式对我来说似乎很有趣:)
我的想法是,如果你将ng-controller
放在一个作为指令的元素上,你也可以将它作为一个“指令控制器”,如下所示:
function transcludeDirective() {
return {
restrict: 'E',
transclude:true,
scope: false,
controller: DemoCtrl,
controllerAs: 'DemoCtrlVM',
template: '<div>'+
'<p>First name: <b>{{ DemoCtrlVM.first_name }}</b></p>'+
'<ng-transclude></ng-transclude>'+
'</div>'
}
}
请务必从HTML中删除ng-controller="DemoCtrl as DemoCtrlVM"
。如果你这样做,那就是works as expected。
这可能不是你想要的。按照你的方式做,你可以使用不同的控制器与指令,并按照我的方式控制器耦合到指令......