2016-03-14 3 views
0

У меня есть несколько шаблонов для форматирования текста, Frecuencia-dia.html или Frecuencia-mes.html, например.AngularJS - пользовательские директивы с атрибутами в templateUrl

Я хочу вызвать динамичный шаблон с использованием атрибутов тего (текст равнины) и клаве (областью видимости переменной).

<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

+0

Какую ошибку вы получаете? Можете ли вы положить plunkr? https://docs.angularjs.org/guide/directive – Gary

ответ

1

Вы не можете использовать динамический шаблон в директиве.

В документации говорят:

Примечание: Вы в настоящее время не имеют возможности доступа к области видимости переменных из функции 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' 
    } 
}; 
}); 
+0

ng-include работает нормально и проще, спасибо большое :) –

Смежные вопросы