我在我的Laravel视图中设置了我的textarea上的summer-note.js,如果我输入任何数据并在数据中包含{{}}
,点击保存按钮,帖子保存成功,但是当我去show节目时页面不是加载之后,我检查了body元素只显示,但当我查看页面源所有代码都显示在那里,然后我添加了一个没有{{}}
的新数据,然后我去了show route,页面加载正常,但是当我在数据中包含{{}}
时,页面不再加载,我的Laravel视图代码:
<div class="col-md-8">
<h1>Question # {{ $question->id }}:</h1>
<p>{!! $question->question !!}</p>
</div>
我认为这是因为{{ {{ }} }}
加倍,因为当它呈现数据时它变为{{这是{{question}}#1}}所以它有什么解决方法吗?
我尝试了{!! $question->question !!}
和{{ $question->question }}
,但页面没有加载。
尝试使用jquery的replaceWith()函数并在其中放置一个限制,以便只要在输入中找到它就将{{}}转换为HTML实体。
{is {
和for}的HTML实体是}
有关更多信息,请访问replaceWith()函数,对于HTML实体,请访问here
如果我理解正确,你可能会错过'@'
像这样:
@{{ '{{ test }}' }}
https://laravel.com/docs/5.7/blade#blade-and-javascript-frameworks
鉴于测试数据,我没有看到显示页面的任何问题:
@php
$test = '<p>{{Lo<u>rem ipsum dolor s<b>it amet, consectetur }}</p>';
@endphp
<p>{!! $test !!}</p>
<p>{{ $test }}</p>
此外,我强烈建议不要输出未转义的HTML。您可能拥有的数据会弄乱模板中的结束/打开标记。
清除视图缓存后尝试
php artisan view:clear
并将您的文本转换为HTML使用{!! !!}
希望它会有所帮助:)