AngularJS - 具有templateUrl中属性的自定义指令

时间:2016-03-14 09:21:50

标签: angularjs angular-directive

我有一些格式文本模板,例如 frecuencia-dia.html frecuencia-mes.html

我想使用属性 tipo (text plain)和 clave (变量范围)调用dinamic模板。

<ng-formato-texto tipo="frecuencia" clave="{{prod.claveFrecuencia}}" />

app.directive('ngFormatoTexto', function() {
    return {
        templateUrl: function(elem, attr){
            return '/formats/'+attr.tipo+'-'+attr.clave+'.html';
        }
    };
});

但是不行,请尝试加载 frecuencia-%7B%7Bprod.clavePrueba%7D%7D.html

1 个答案:

答案 0 :(得分:2)

您无法在指令中使用动态模板。

正如文件所说:

  

注意:您目前无法从templateUrl函数访问范围变量,因为在初始化范围之前请求模板。

要创建动态指令,可以使用ng-include

示例:

app.directive('ngFormatoTexto', function() {
 return {
     template: '<div ng-include="path"></div>',
     scope:{
       tipo:"@",
       clave:"="
     },
     link:function(scope){
       scope.path= '/formats/'+scope.tipo+'-'+scope.clave+'.html'
     }
 };
});