Helo,我想将 jsrender 与 laravel 结合使用,但我遇到了刀片引擎的一些问题,因为它们都使用双括号表示法来存储数据,无法让它们编译。
在我的刀片文件中,我有:
@include('templates/note');
然后是我在“templates/note.blade.php”中的模板。
但是,这给我带来了问题{{}}
那么如何将 jsrender 与 laravel 结合使用呢?任何帮助,将不胜感激。
[更新]
根据这个问题,这显然不适用于 Laravel >= 5.4:https ://github.com/laravel/framework/issues/17736 。因此,您可以改为使用@{{ }}
来阻止刀片编译标签。
您可以改为更改刀片引擎的内容标签/分隔符。通过使用 setContentTags() 函数。例如,我通常使用:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Blade;
use View;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Blade::setContentTags('<%', '%>');
Blade::setEscapedContentTags('<%!!', '!!%>');
View::addExtension('jsv.html', 'blade');
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
我将它放在 AppServiceProvider.php 的启动函数中,以便在其他所有操作之前运行它。
在 JsRender 和 JsViews 中,您可以设置自己选择的分隔符,而不是使用默认的“{{”、“}}”。
有关文档,请参阅为 JsRender 设置标记分隔符。
这是一个显示它的测试用例:$.views.settings.delimiters("@%","%@");