我有一个加载模板并编译它的指令:
function question($templateRequest, $compile) {
return {
restrict: 'E',
scope: {
apply: '&apply',
item: '=item'
},
bindToController: true,
link: function (scope, element, attrs) {
//debugger;
var templateUrl = 'someRandomUrl'
$templateRequest(templateUrl).then(function (template) {
$compile(element.html(template).contents())(scope.$parent);
}, function () {
// An error has occurred
$compile(element.html("error").contents())(scope);
});
}
}
}
模板已正确生成,我还可以将模板 html 中的函数调用到 myController,例如:
ng-click='vm.apply()'
在 myController 上,我使用的是 controllerAs vm 语法,当从控制器视图调用普通函数时,我可以访问范围内的 vm 变量。从模板调用的函数无权访问主体内的 vm 变量。
模板在 myController 视图下生成。
我还尝试使用不同的选项进行指令配置,例如删除隔离范围、删除 bindToController 等。
可能吗?如何?
(我知道我可以将其添加为额外的参数,但想避免这种情况)
谢谢