Laravel JavaScript:将数组从后端传递到JavaScript中的数组

4
我有一个控制器,将数组通过变量$data传递给blade文件。然后我通过blade将数据输出到页面上,如{{ $data[0]['name'] }}
问题在于,我还想将数据放在javascript的数组中。
怎样才能实现这一点呢? 是最好通过AJAX再次请求数据,还是有一种方法可以将数据从blade中提取到javascript中?或者通过Blade将其呈现为JSON格式的HTML,然后通过JavaScript从HTML中提取JSON?
1个回答

4

所以,在这样做时,您只需像使用php一样将数据传递给javascript:

<script> var a = ['{{$data[0]['name] }}','{{$data[0]['name] }}'];</script>

或者,如果您不想逐个手动添加它们,请使用laravel内置的foreach循环:

var a = [@foreach($data as $k => $info)
   '{{ $info }}',
@endforeach ]

这取决于你计划如何进行。

感谢您的回复,Blade模板引擎不会输出变量,因此我最终得到了以下传递给客户端的变量:var availableTags = [@foreach($data as $k => $info) "{{ $info['name'] }}", @endforeach ]; - user2929209
你使用的是哪个版本的 Laravel?请记住,即使这是一个 Laravel Blade 文件,你仍然可以使用本地 PHP - 所以尝试做这个:<pre><?php print_r($data); ?></pre> 并确保你正在获取传递的数据。 - Derek Pollard
5.1,但不确定如何检查。我知道数据已经传递,因为它也被回显到HTML中,我正在尝试将其添加到JavaScript中,以及已经呈现的内容。 - user2929209
是的,现在它可以用了。我必须把变量放在 index.blade.php 页面上,而不是将其放在被包含在 index.blade.php 中的 main.js 文件中。感谢你的帮助!!:) - user2929209

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接