Smarty的PHP冲突与AngularJS(Smarty PHP clashing with An

2019-08-01 04:01发布

如何阻止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

如果我换{{我}}{{4}}或任何其他数字它工作正常。 我可以用数学以及{{8 + 2}}将显示10页。 是Smarty的做angularJS的数学?

Answer 1:

试试这个:

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

从Smarty的网站报价...

{字面}标签允许字面数据块。 这通常用于围绕Javascript或样式表的块,其中{花括号}将与模板定界符语法干扰。 {字面} {/文字}标签内的任何不被解释,但显示的原样。



Answer 2:

更清洁的解决方案:你可以改变AngularJS正是如此的模板分隔符:

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


Answer 3:

您可以配置角度使用比{{}}其他插值符号: https://stackoverflow.com/a/11108407/215945



文章来源: Smarty PHP clashing with AngularJS