如何将范围变量传递给指令的`tAttrrs`对象?

时间:2014-08-23 21:06:57

标签: javascript angularjs angularjs-directive

好吧,所以我想在动态生成的模板网址中使用范围变量。所以我尝试了这个:

HTML

<my-directive type="{{ type }}"></my-directive>

JS

angular.module('myApp', [])
  .directive('myDirective', function () {
    return {
      templateUrl: function (tElement, tAttrs) {
        return 'templates/myDirective.' + tAttrs.type + '.html';
      };
    };
  });

我希望tAttrs.type能够返回$scope.type的值,但我最终获得了{{ type }}。这导致templateUrl为templates/myDirective.{{ type }}.html

那么,我该怎么做才能获得范围变量的值而不是原始文本?

1 个答案:

答案 0 :(得分:1)

无法从指令的templateUrl中访问范围值。属性尚未编译,因此在此上下文中无法访问范围。

这是一个可能对您有用的解决方法。

See Plunkr

我在这里做的是使用包含带有ng-include的div的模板,通过双向绑定获取url。