Pet*_*ete 9 javascript php template-engine smarty angularjs
当我在同一模板中使用AngularJS时,如何阻止Smarty抛出错误.我有一个包含此代码的Smarty页面模板:
<li ng-repeat="i in items">
<p class="item">{{i}}</p>
</li>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中查看时,我得到一个空白页面.我的apache error_log中出现了一个很大的错误,其中包含以下内容:
PHP Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template ... <p>{{i}}</p>; unknown tag "i
Run Code Online (Sandbox Code Playgroud)
如果我将{{i}}替换为{{4}}或任何其他数字,则可以正常工作.我也可以使用数学,{{8 + 2}}将在页面中显示10.这是Smarty做angularJS的数学吗?
小智 20
更清洁的解决方案:您可以通过以下方式更改AngularJS的模板分隔符:
angular.module('app', [])
.config(['$interpolateProvider', function ($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
}]);
Run Code Online (Sandbox Code Playgroud)
Dev*_*ger 17
试试这个:
<li ng-repeat="i in items">
<p class="item">{literal}{{i}}{/literal}</p>
</li>
Run Code Online (Sandbox Code Playgroud)
从Smarty网站引用...
{literal}标签允许从字面上获取数据块.这通常用于Javascript或样式表块,其中{花括号}会干扰模板分隔符语法.{literal} {/ literal}标记内的任何内容都不会被解释,而是按原样显示.