Smarty PHP столкнулся с AngularJS

Как остановить Smarty, вызывая ошибку, когда я использую AngularJS в том же шаблоне. У меня есть шаблон страницы Smarty с этим кодом:

<li ng-repeat="i in items"> <p class="item">{{i}}</p> </li> 

И я получаю пустую страницу при просмотре в браузере. Я получаю большую ошибку в моем apache error_log, который содержит следующее:

  PHP Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template ... <p>{{i}}</p>; unknown tag "i 

Если я поменяю {{i}} на {{4}} или любую другую цифру, он отлично работает. И я также могу использовать математику, {{8 + 2}} покажет 10 на странице. Разве Smarty делает математику углового?

Solutions Collecting From Web of "Smarty PHP столкнулся с AngularJS"

Попробуй это:

 <li ng-repeat="i in items"> <p class="item">{literal}{{i}}{/literal}</p> </li> 

Цитата с сайта Smarty …

Теги {literal} позволяют записывать блок данных буквально. Обычно это используется в блоках Javascript или таблиц стилей, где {фигурные скобки} будут мешать синтаксису разделителя шаблона. Все, что находится внутри тегов {literal} {/ literal}, не интерпретируется, а отображается как-есть.

Очень чистое решение: вы можете изменить разделители шаблонов AngularJS таким образом:

 angular.module('app', []) .config(['$interpolateProvider', function ($interpolateProvider) { $interpolateProvider.startSymbol('[['); $interpolateProvider.endSymbol(']]'); }]); 

Вы можете настроить Angular для использования символов интерполяции, отличных от {{}}: https://stackoverflow.com/a/11108407/215945