如何使指令使用指令属性中指定的控制器?

偷窃

所以我有一条指令:

<directive data="user" templateUrl="./user.html" controller="UserController"></directive>

如上所示,我希望该指令使用在“ controller”属性中指定的控制器。

AngularJS指令可能吗?还是应该以其他方式(例如使用组件)进行操作?

我的代码当前如下所示:

app.directive('directive', function() {
        
        var controllerName = "UserController"; // i want that to dynamicaly come from attribute
        
        // check if controller extists:
        var services = [];
        app['_invokeQueue'].forEach(function(value){ 
            services[value[2][0]] = true;
        });         
        if (!services[controllerName]) controllerName = false;
        
        return {
            
            scope: { 'data' : '=' },

            link: function (scope) {
                
                Object.assign(scope, scope.data);
            },
            
            templateUrl: function(element, attr) {
                
                return attr.templateurl;
            },
            
            controller: controllerName
            
        }
        
    });
偷窃

好的,因此在分析了Petr的答案之后,我使用嵌套的divs发布了工作代码

app.directive('directive', function() {
        
        return {
            scope: { 'data' : '=' },
            
            link: function (scope) {
                
                // this makes your fields available as {{name}} instead of {{user.name}}:
                Object.assign(scope, scope.data);
                
            },
            
            template: function(element, attrs) {
                
                var controllerName = attrs.controller;
                var controllerString = controllerName + ' as vm';
                
                // check if controller extists:
                var services = [];
                app['_invokeQueue'].forEach(function(value){ 
                    services[value[2][0]] = true;
                })
                
                if (!services[controllerName]) {
                    
                    return '<div ng-include="\'' + attrs.templateurl + '\'"></div>'; 
                    
                } else {
                    
                    return '<div ng-controller="' + controllerString + '"><div ng-include="\'' + attrs.templateurl + '\'"></div></div>';
                        
                }
            }
        }
        
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使指令使用指令属性中指定的控制器?

来自分类Dev

如何使指令使用指令属性中指定的控制器?

来自分类Dev

如何使指令使用指令属性中指定的控制器?

来自分类Dev

AngularJS中指令与控制器的交互

来自分类Dev

如何从内部指令更改控制器的 $scope 属性?

来自分类Dev

从父控制器访问指令的属性

来自分类Dev

在控制器中访问指令属性

来自分类Dev

在控制器属性中指定的部分

来自分类Dev

角度中指令与控制器之间的双向通信

来自分类Dev

AngularJS处理来自控制器中指令的事件

来自分类Dev

访问父控制器中指令的html内容

来自分类Dev

Angular指令需要另一个使用属性定义的控制器的指令

来自分类Dev

如何使用指令在控制器之间传递数据?

来自分类Dev

如何在指令中使用/同步控制器数据?

来自分类Dev

如何在指令模板中使用控制器$ scope

来自分类Dev

如何使用指令在控制器之间传递数据?

来自分类Dev

如何在AngularJs指令中使用控制器变量

来自分类Dev

如何模拟AngularJS指令的控制器

来自分类Dev

如何从指令刷新控制器?

来自分类Dev

如何从控制器调用指令函数?

来自分类Dev

如何从父指令/控制器访问指令范围?

来自分类Dev

使用指令与服务干燥控制器

来自分类Dev

在AngularJS的指令中使用控制器

来自分类Dev

如何在“控制器为”控制器内的指令中正确使用 $watch?

来自分类Dev

当我也使用指令控制器时,从指令中调用控制器方法。

来自分类Dev

如何在ng-controller指令中使用onload属性来执行控制器内定义的功能?

来自分类Dev

动态指定要在Angular指令中使用的控制器

来自分类Dev

向Angular指令控制器(例如FormController)添加属性

来自分类Dev

AngularJS指令控制器解析插值属性?

Related 相关文章

  1. 1

    如何使指令使用指令属性中指定的控制器?

  2. 2

    如何使指令使用指令属性中指定的控制器?

  3. 3

    如何使指令使用指令属性中指定的控制器?

  4. 4

    AngularJS中指令与控制器的交互

  5. 5

    如何从内部指令更改控制器的 $scope 属性?

  6. 6

    从父控制器访问指令的属性

  7. 7

    在控制器中访问指令属性

  8. 8

    在控制器属性中指定的部分

  9. 9

    角度中指令与控制器之间的双向通信

  10. 10

    AngularJS处理来自控制器中指令的事件

  11. 11

    访问父控制器中指令的html内容

  12. 12

    Angular指令需要另一个使用属性定义的控制器的指令

  13. 13

    如何使用指令在控制器之间传递数据?

  14. 14

    如何在指令中使用/同步控制器数据?

  15. 15

    如何在指令模板中使用控制器$ scope

  16. 16

    如何使用指令在控制器之间传递数据?

  17. 17

    如何在AngularJs指令中使用控制器变量

  18. 18

    如何模拟AngularJS指令的控制器

  19. 19

    如何从指令刷新控制器?

  20. 20

    如何从控制器调用指令函数?

  21. 21

    如何从父指令/控制器访问指令范围?

  22. 22

    使用指令与服务干燥控制器

  23. 23

    在AngularJS的指令中使用控制器

  24. 24

    如何在“控制器为”控制器内的指令中正确使用 $watch?

  25. 25

    当我也使用指令控制器时,从指令中调用控制器方法。

  26. 26

    如何在ng-controller指令中使用onload属性来执行控制器内定义的功能?

  27. 27

    动态指定要在Angular指令中使用的控制器

  28. 28

    向Angular指令控制器(例如FormController)添加属性

  29. 29

    AngularJS指令控制器解析插值属性?

热门标签

归档