Syl*_*lar 8 javascript php laravel laravel-5 laravel-blade
在我的代码中,我使用的是typeahead.js.我使用Laravel 5,我需要替换var states我的{{ $jobs }}变量.我需要将所有作业标题列为数组.
在我的控制器中我有
$jobs = Job::all(['job_title']);
Run Code Online (Sandbox Code Playgroud)
我知道javascript中的循环方法,但我不知道如何在javascript中"链接"我的刀片变量.谁知道怎么样?
我试过,在my.js中
var jobs = {{ $jobs }}
Run Code Online (Sandbox Code Playgroud)
但那不行.
luk*_*ter 23
对于像阵列这样的更复杂的变量类型,最好的办法是将其转换为JSON,在模板中回显并在JavaScript中解码.像这样:
var jobs = JSON.parse("{{ json_encode($jobs) }}");
Run Code Online (Sandbox Code Playgroud)
请注意,PHP必须运行此代码才能使其正常工作.在这种情况下,您必须将其放入Blade模板中.如果您将JavaScript代码放在一个或多个单独的文件中(这很好!),您只需在模板中添加内联脚本标记,然后传递变量即可.(只需确保它在其余JavaScript代码之前运行.通常document.ready是答案)
<script>
var jobs = JSON.parse("{{ json_encode($jobs) }}");
</script>
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢这样做的想法,我建议您在单独的ajax请求中获取数据.
Kar*_*mir 12
这适合我
jobs = {!! json_encode($jobs) !!};
Run Code Online (Sandbox Code Playgroud)
Jig*_*sar 11
在laravel 6这对我有用
使用 Laravel 刀片指令
var jobs = {!! json_encode($jobs) !!};
Run Code Online (Sandbox Code Playgroud)
也使用@json指令
var jobs = @json($jobs);
Run Code Online (Sandbox Code Playgroud)
使用 php 风格
var jobs = <?php echo json_encode($jobs); ?>
Run Code Online (Sandbox Code Playgroud)
只是添加到上面:
var jobs = JSON.parse("{{ json_encode($jobs) }}");
将返回转义的 html 实体,因此您将无法在 javascript 中循环遍历 json 对象,要解决此问题,请在下面使用:
var jobs = JSON.parse("{!! json_encode($jobs) !!}");
或者
var jobs = JSON.parse(<?php echo json_encode($jobs); ?>);
| 归档时间: |
|
| 查看次数: |
32443 次 |
| 最近记录: |