有没有办法将范围传递给指令templateUrl:函数?

亚当·莱维特(Adam Levitt)

我有一个循环调用的指令。循环中的每个项目都有一个FieldTypeId属性,根据FieldTypeId的值,我想换出模板的URL。我觉得这是一种更好的多态方法,而不是在html中执行ng-switch语句。

<div ng-repeat="item in attributes">
  <div attribute-input></div>
</div>

当然,$scope此指令中不提供:

editStudentAccountModule.directive('attributeInput', function () {
        return {
            restrict: "AE",
            templateUrl: function () { // 
               var attribute = $scope.attributes[$scope.$index];
               if (attribute.FieldTypeId == 1) {
                 return '../Templates/dropdown.html';
               } else if (attribute.FieldTypeId == 2) {
                 return '../Templates/radio.html';
               } // etc.
            }
        }
    });
Shaunhusain

您需要在链接函数中加载模板才能访问范围,然后才可以在模板中或通过编译访问模板本身,请在此处查看以下内容:指令的好处是什么Angularjs中的模板函数?

如果您曾经实际直接使用过$ compile服务,则这很明显。当您在某个DOM上调用$ compile时,它会返回链接函数,然后调用该函数传递一个作用域以使其在其上执行。因此,从该角度看时,很明显,只有在调用编译并且返回链接函数然后再使用范围调用之前,才具有作用域...看起来像这样:

$compile("<div ng-repeat='thing in things'></div>")({things:['thing1','thing2']});//Normally you would pass a scope object in here but it can really be whatever

您的代码有些暗处:

editStudentAccountModule.directive('attributeInput', function () {
        return {
            restrict: "AE",
            scope:{info:"="},
            link: function(scope){
              var templateToUse = '../Templates/default.html';
              if (scope.info.FieldTypeId == 1) {
                templateToUse '../Templates/dropdown.html';
              } else if (scope.info.FieldTypeId == 2) {
                templateToUse '../Templates/radio.html';
              } // etc.
              scope.myTemplate = templateToUse;
            },
            template:"<div ng-include='myTemplate'></div>";
        }
    });



<div ng-repeat="item in attributes">
  <div attribute-input info="item"></div>
</div>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法将多个函数传递给AngularJS指令?

来自分类Dev

有没有办法将变量从awk语句传递给bash函数作为参数?

来自分类Dev

有没有办法将函数从objective-c++传递给标准c++?

来自分类Dev

有没有办法将哈希数组传递给 Chef 中的提供程序函数

来自分类Dev

有没有办法将方法名称传递给函数,并让该函数返回封装该方法的委托?

来自分类Dev

有没有办法遍历传递给Elixir中的函数的所有参数?

来自分类Dev

有没有办法将相同的值传递给函数的所有参数?

来自分类Dev

当用作类型参数时,有没有办法将参数传递给类构造函数?

来自分类Dev

有没有办法将状态传递给作为道具传递的组件?

来自分类Dev

Ruby / Chef:有没有办法引用资源“名称”并传递给函数?

来自分类Dev

有没有办法让 rollapply 始终将矩阵传递给我的函数?

来自分类Dev

有没有办法将变量从ui.router传递给控制器?

来自分类Dev

有没有办法将方法作为参数传递给方法?

来自分类Dev

有没有办法将环境变量传递给python脚本?

来自分类Dev

有没有办法将参数传递给optuna中的多个作业?

来自分类Dev

有没有办法将密钥而不是文件传递给python sshtunnel?

来自分类Dev

有没有办法将数组参数传递给管道?

来自分类Dev

有没有办法将变量传递给Django模板中的<div> id?

来自分类Dev

有没有办法将方法作为参数传递给方法?

来自分类Dev

有没有办法将变量传递给 jQ .attr 或 .css?

来自分类Dev

有没有办法将 WebElement 传递给 Robot 中的 javascript?

来自分类Dev

有没有办法将索引传递给 ActiveAdmin 中的嵌套表单部分?

来自分类Dev

有没有办法将网格名称或参数传递给点击事件?

来自分类Dev

有没有办法将 v-for 中的对象属性传递给 Vue 数据?

来自分类Dev

有没有办法将变量传递给文档对象?

来自分类Dev

有没有办法将凭据传递给点源脚本?

来自分类Dev

有没有办法将函数作为宏的参数传递?

来自分类Dev

有没有办法将包含冒号的列族传递给外壳程序的scan命令

来自分类Dev

有没有办法将布尔值列表传递给React中的父元素?

Related 相关文章

  1. 1

    有没有办法将多个函数传递给AngularJS指令?

  2. 2

    有没有办法将变量从awk语句传递给bash函数作为参数?

  3. 3

    有没有办法将函数从objective-c++传递给标准c++?

  4. 4

    有没有办法将哈希数组传递给 Chef 中的提供程序函数

  5. 5

    有没有办法将方法名称传递给函数,并让该函数返回封装该方法的委托?

  6. 6

    有没有办法遍历传递给Elixir中的函数的所有参数?

  7. 7

    有没有办法将相同的值传递给函数的所有参数?

  8. 8

    当用作类型参数时,有没有办法将参数传递给类构造函数?

  9. 9

    有没有办法将状态传递给作为道具传递的组件?

  10. 10

    Ruby / Chef:有没有办法引用资源“名称”并传递给函数?

  11. 11

    有没有办法让 rollapply 始终将矩阵传递给我的函数?

  12. 12

    有没有办法将变量从ui.router传递给控制器?

  13. 13

    有没有办法将方法作为参数传递给方法?

  14. 14

    有没有办法将环境变量传递给python脚本?

  15. 15

    有没有办法将参数传递给optuna中的多个作业?

  16. 16

    有没有办法将密钥而不是文件传递给python sshtunnel?

  17. 17

    有没有办法将数组参数传递给管道?

  18. 18

    有没有办法将变量传递给Django模板中的<div> id?

  19. 19

    有没有办法将方法作为参数传递给方法?

  20. 20

    有没有办法将变量传递给 jQ .attr 或 .css?

  21. 21

    有没有办法将 WebElement 传递给 Robot 中的 javascript?

  22. 22

    有没有办法将索引传递给 ActiveAdmin 中的嵌套表单部分?

  23. 23

    有没有办法将网格名称或参数传递给点击事件?

  24. 24

    有没有办法将 v-for 中的对象属性传递给 Vue 数据?

  25. 25

    有没有办法将变量传递给文档对象?

  26. 26

    有没有办法将凭据传递给点源脚本?

  27. 27

    有没有办法将函数作为宏的参数传递?

  28. 28

    有没有办法将包含冒号的列族传递给外壳程序的scan命令

  29. 29

    有没有办法将布尔值列表传递给React中的父元素?

热门标签

归档