【问题标题】:using jsrender with laravel使用 jsrender 和 laravel
【发布时间】:2013-05-25 07:41:31
【问题描述】:

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

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

@include('templates/note');

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

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

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

【问题讨论】:

    标签: laravel jsrender


    【解决方案1】:

    [更新]
    根据这个问题,这显然不适用于 Laravel >= 5.4:https://github.com/laravel/framework/issues/17736。所以你可以使用@{{ }} 来阻止blade 编译标签。

    您可以改为更改刀片引擎的内容标签/分隔符。通过使用 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 中的启动函数中,以便在其他所有操作之前运行它。

    【讨论】:

      【解决方案2】:

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

      有关文档,请参阅 Setting tag delimiters for JsRender

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-15
        • 1970-01-01
        • 2012-09-15
        • 2020-09-30
        相关资源
        最近更新 更多