Dyl*_*lan 4 laravel blade laravel-5 laravel-blade
在 Laravel 5 刀片模板中,我有一个<script>部分。
在本节中,我需要将一个变量设置为来自另一个刀片模板的字符串。
我试过类似的东西:
<script>
var a = "@include 'sometext.blade.php' ";
</script>
Run Code Online (Sandbox Code Playgroud)
但这显然行不通。
此外,包含的刀片可以包含单引号和双引号,因此需要以某种方式对它们进行转义,否则 Javascript 将无效。
有任何想法吗?
在使用 DataTables 时最终需要类似的功能,并且需要在事后通过 jQuery 注入 HTML 的附加操作。
首先,我用这个创建了一个辅助函数(从将 PHP 字符串传递到 JavaScript 变量(并转义换行符)):
function includeAsJsString($template)
{
$string = view($template);
return str_replace("\n", '\n', str_replace('"', '\"', addcslashes(str_replace("\r", '', (string)$string), "\0..\37'\\")));
}
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中,您可以执行以下操作:
$('div.datatable-toolbar').html("{!! includeAsJsString('sometext') !!}");
Run Code Online (Sandbox Code Playgroud)
包含sometext.blade.php带有转义引号和删除换行符的刀片模板。
| 归档时间: |
|
| 查看次数: |
4161 次 |
| 最近记录: |