2015-12-28 1 views
0

в this plunkr example. Я просто пытаюсь создать свою собственную директиву ng-include, которая автоматически заменяет атрибут src чем-то другим (добавьте дополнительные параметры).Ошибка синтаксиса: токен 'src' является неожиданным токеном

Когда «заменить» атрибут директивы является «истинной», он порывает с вышеуказанной ошибкой. Если установить его в «ложь», все в порядке, но тогда я получаю дополнительный уровень вложенности в моем DOM, который я пытаюсь избежать ...

Выражение, которое не является:

template: '<ng-include src="src | srcizer"></ng-include>' 

Есть ли способ использовать replace = true и по-прежнему создавать такую ​​альтернативу ng-include?

ответ

1

Это должно работать:

template: '<ng-include ng-src="src | srcizer"></ng-include>' 
+0

Да, это фактически работает. Одна нота: мне нужно было установить «scope: false», потому что вложенные объекты нуждаются в доступе к любым переменным области видимости, которые доступны ... Я обновил plunkr. Почему ng-src исправляет проблему? –

0

Я не понимаю, что вы пытаетесь, но кажется, что вам не нужно использовать нг-включать, так как вы можете использовать templateUrl вместо template в директиве. Это позволяет хранить угловые шаблоны, такие как общий html в html-файлах.

Вот ваш обновленный plunker

Обратите внимание на templateUrl: 'mytemplate.html' это обновление в вашей директиве.

И теперь про replace:true. В соответствии с угловым documentation его устаревшим, поэтому не используйте его.

replace ([DEPRECATED!], will be removed in next major release - i.e. v2.0)

+0

Я подожду и посмотрю, я уверен, что «замена» будет иметь альтернативу к тому времени, чтобы избежать огромного увеличения уровней гнездования ... Я предпочитаю использовать replace: true, тем временем –

+0

вы можете использовать замену в моем обновленном плункере. просто хотел указать, что хранение шаблонов в отдельных html-файлах с помощью шаблонаUrl в лучшем случае и в вашем случае ng-include избыточно – Denis

+0

Я посмотрел на ваш plunkr, pls уточнить: имя «mytemplate.html» кажется жестко закодированным внутри директивы использования значения из атрибута 'src' ... –

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

  • Нет связанных вопросов^_^