我知道您可以使用
更改默认刀片分隔符Blade::setEscapedContentTags('[[', ']]');
Blade::setContentTags('[[[', ']]]');
但是我不知道我应该把它放在哪里以便它只影响单个刀片模板,而不是将它放在app/start/global.php
,这会影响整个应用程序。
答案 0 :(得分:14)
如果您只想为单个视图使用不同的标记,可以在闭包或控制器操作中设置将生成视图的标记。
Route::get('/', function()
{
Blade::setEscapedContentTags('[[', ']]');
Blade::setContentTags('[[[', ']]]');
return View::make('home');
});
如果您想在应用程序布局中使用普通代码{{
和}}
,而在嵌套视图中使用自定义代码,则可能会出现问题 - 我不确定哪种方法最好接近会有。
答案 1 :(得分:1)
使用Blade::setEscapedContentTags
/ Blade::setContentTags
的解决方案在最新版本的Laravel中(在5.6版中选中)不起作用。
推荐的方法是(https://laravel.com/docs/5.6/blade#blade-and-javascript-frameworks):
刀片和JavaScript框架
由于许多JavaScript框架还使用“大括号”来表示 给定的表达式应显示在浏览器中,您可以使用
@
通知Blade渲染引擎表达式应使用的符号 保持不变。例如:
Hello, @{{ name }}.
在此示例中,
@
符号将被删除 刀;但是,{{ name }}
表达式将保持不变 刀片引擎,允许它改为由JavaScript呈现 框架。@verbatim指令
如果要在显示JavaScript变量 您可以在模板的很大一部分中将HTML包装在
@verbatim
指令,这样您就不必为每个Blade回波添加前缀 带有@
符号的语句:@verbatim <div class="container"> Hello, {{ name }}. </div> @endverbatim
答案 2 :(得分:-1)
只需使用 @verbatim 指令。将您的整个代码包装在其中,刀片将只忽略所有花括号。