1

Helo,我想将 jsrender 与 laravel 结合使用,但我遇到了刀片引擎的一些问题,因为它们都使用双括号表示法来存储数据,无法让它们编译。

在我的刀片文件中,我有:

@include('templates/note');

然后是我在“templates/note.blade.php”中的模板。

但是,这给我带来了问题{{}}

那么如何将 jsrender 与 laravel 结合使用呢?任何帮助,将不胜感激。

4

2 回答 2

3

[更新]
根据这个问题,这显然不适用于 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 的启动函数中,以便在其他所有操作之前运行它。

于 2016-05-05T10:15:17.613 回答
2

在 JsRender 和 JsViews 中,您可以设置自己选择的分隔符,而不是使用默认的“{{”、“}}”。

有关文档,请参阅为 JsRender 设置标记分隔符

这是一个显示它的测试用例:$.views.settings.delimiters("@%","%@");

于 2013-05-25T17:13:22.227 回答