2015-09-03 1 views
4

Мне сказали, что использование амперсандов в угловых шаблонах - это плохая практика, так как «&» зарезервирован в HTML, но я вижу это в примерах для углового все время.Можно ли использовать амперсанды (&) в шаблонах Angular html

Чтобы было ясно, что это будет безопасно писать

<div ng-show="bool1 && bool2"></div> 

в угловой шаблон?

Мне не интересно знать, работает ли оно (оно есть), но если есть какие-либо случаи, когда это может вызвать проблемы или если это действительно обескуражено.

+0

возможно дубликат [Существуют сложные выражения, возможные в нг скрывать/нг-шоу?] (HTTP: // StackOverflow .com/questions/15166184/are-complex-expressions-possible-in-ng-hide-ng-show) – bransonl

+0

Меня больше интересует, как это работает с HTML, не позволяя использовать '&', за исключением объектов символа HTML. –

+1

Thymeleaf дает SAXParseException при их использовании. Поэтому вы не должны использовать их, если вы также используете Thymeleaf. – cst1992

ответ

1

Это нормально. Спецификация HTML5 явно позволяет использовать неэнкодированные амперсанды, если они не похожи на ссылку на символ (например, &copy;). Конечно, для некоторых вещей, таких как URL-адреса, лучше быть последовательными и избегать их. Но для && с пробелами вокруг него нет никаких шансов, что браузер неправильно интерпретирует данные, а &amp;&amp; значительно менее читаем.

Соответствующие разделы спецификации:

2

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

+1

Я предпочел бы знать, что такое лучшая практика. Например, http://stackoverflow.com/questions/3493405/do-i-really-need-to-encode-as-amp предлагает вам не использовать его в HTML. –

+1

Лучшая практика всегда самая безопасная, и для безопасности я бы предложил (как и вопрос, который вы связали), чтобы избежать ваших амперсандов. – FullyHumanProgrammer

+0

Мне гораздо проще просто убежать от них, а не беспокоиться, если им не удастся избежать. Пример: в ссылке, подобной '', вы _need_, чтобы избежать амперсанда, чтобы он не интерпретировался как '& ordm'? Но если вы всегда будете писать '&' везде, вопрос даже не появится. –

0
+0

Знаете ли вы, как это относится к http://stackoverflow.com/questions/3493405/do-i-really-need-to-encode-as-amp? Благодаря! –

+0

Не относится к этому. –

+0

В таком случае: как? Это сохраняется как обычный HTML. –

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