我有编译任何给定指令的动态指令,问题出在编译函数上,我需要为其提供正确的范围,只是想如何做到这一点?
下面我的指令示例,“指令”范围输入是动态的,例如它可能是<display-users data="users"/>
用户是加载此指令的控制器的一部分。
尽管下面的编译工作正常,但由于它没有将编译后的代码与正确的范围相关联(在上述情况下为控制器一),它不会显示用户。请问有人可以帮忙吗?
theApp.directive('customCompile',
function ($compile)
{
var dir =
{
replace: true, // replace the original html ? required for restrict = "M"
restrict: 'E', //can be one or more of E / A / C / M
scope:{
directive:'='
},
controller: function ($scope, $http, $attrs) // The controller for the directive
{
},
compile: function compile($element, $tAttrs, $transclude) {
return{
post: function postLink($scope, $iElement, $iAttrs){
$iElement.parent().append($compile($scope.directive.directive)($scope));
}
}
}
};
return dir;
}
);