@microf

А как подставлять переменную в директиву?

Всем привет. А как подставить переменную в директиву? Делаю директиву, которая меняет свой шаблон в зависимости от приходящего значения.
Если делать так, то
var directive = {
            link: link,          
            templateUrl:             
            function (element, attrs) {
              return attrs.templateUrl ? attrs.templateUrl : '/assets/svg/test.svg';
           },
                 
            restrict: 'EA',
            transclude: true
       };

Он воспринимает {{{{param.url}} как ссылку. А эта ссылка равно param.url = 'assets/svg/test2', а это значение не приходит. Что делать?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
функция отрабатывает до compile директивы, так что значения еще не интерполированы. Что вы можете сделать, так это воспользоваться директивой ng-include.

return {
    template: '<ng-include src="templateUrl"></ng-include>',
    scope: {},
    link: function (scope, el, attr) {
        attr.templateUrl.$observe(); // логика изменения переменной.
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы