2015-10-25 58 views
2

我想在JavaScript變量中傳遞/存儲Laravel數組。我以前->all()所以我得到這樣的結果,而不是對象:在Javascript中傳遞(laravel)數組

array:83 [▼ 
    0 => 1 
    1 => 11 
    2 => 12 
    ... 
] 

我可以在視圖中使用{{ $theArray }}訪問此。

然而,無論我嘗試過,我無法這樣做的JavaScript數組。

我試圖

var array = {{ $theArray }};

var array = {{{ $theArray }}};

我覺得我接近,但我無法弄清楚

回答

8

可以使用json_encode()

var array = {{ json_encode($theArray) }}; 

或分析使用JSON.parse()

var array = JSON.parse('{{ json_encode($theArray) }}'); 
+0

This Works,cheers! – senty

+2

我不確定爲什麼如果使用這個{{}},我得到了'Unexpected token'。然後我改爲{!! !!}然後這將工作。也許因爲長度的原因,你的答案被標記爲低質量的laravel版本 –

4

你enclodse加上引號,或使用json_encode()

var array = "{{ $theArray }}"; 
      ^   ^

或者如果th e值在array()

var array = "{{ json_encode($theArray) }}"; 
      ^      ^

沒有引用javascript變量,它會引發你的錯誤。你可以檢查你的控制檯。

+0

'ヶ輛JSON字符串()預計PARAM eter 1是字符串,數組給定' – senty

+0

檢查答案。 –

+1

Pranav的回答解決了我的問題 – senty

2
var app = @json($array); 

就像一個魅力

+0

。考慮擴大你的答案,解釋它是如何工作的。 –