gpt4 book ai didi

angularjs - 在 AngularJS 指令中定义动态 Controller ?

转载 作者:行者123 更新时间:2023-12-01 14:40:42 24 4
gpt4 key购买 nike

我有一个具有动态模板的指令,现在我希望该指令能够使用不同的 Controller 。是否可以动态地将 Controller 分配给指令?如果可能的话,那会是相同的“ctrlr”然后传递给 link 函数吗?

.directive('myDirective',['$compile',function($compile){
return {
restrict: 'AE',
replace: true,
transclude: true,
scope: {},
templateUrl: function(el,attrs){
return (angular.isDefined(attrs.template)) ? attrs.template : '/tmpls/default';
},
link : function(scope,el,attrs,ctrlr,transFn){
[... Do Stuff Here ...]
},
controller: [ DYNAMIC CONTROLLER ASSIGNMENT?? ]
};
}]);

最佳答案

虽然我没有在官方 API 中找到相应的文档,但您可以通过使用“name”属性并结合提供“controller”属性来动态传入您要使用的 Controller 的名称一个使用您将用于隔离范围的类似语法的值。

使用您的示例代码,假设有一个名为“myController”的 Controller :

HTML:

<my-directive ctrlr="myController"></my-directive>

JS:

.directive('myDirective',['$compile',function($compile){
return {
restrict: 'AE',
replace: true,
transclude: true,
scope: {},
templateUrl: function(el,attrs){
return (angular.isDefined(attrs.template)) ? attrs.template : '/tmpls/default';
},
link : function(scope,el,attrs,ctrlr,transFn){
[... Do Stuff Here ...]
},
controller: '@',
name: 'ctrlr'
};
}]);

关于angularjs - 在 AngularJS 指令中定义动态 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20198045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com