2015-10-07 1 views
1

Мне нужно включить js-файл в мои представления.Перемешать переменную в файле Javascript Laravel

Но в этом js-файле мне нужно интерпретировать некоторую переменную PHP.

На самом деле я это сделать:

@section('javascript') 
    <script> 
     alert("{{{test}}}"); 
    </script> 
@stop 

Но я действительно нужно сделать, это:

@section('javascript') 
    {!! Html::script('js/test.js') !!} 
@stop 

test.js:

alert("{{{test}}}"); 

мне нужно объявить много переменных уплотнительное , Так что мой JS-файл будет очень большим. И я не хочу показывать это прямо в исходном коде.

Как я могу это сделать? Спасибо!

+0

Переменная, о которой вы говорите, является ли она переменной javascript? или PHP? – Mithredate

+0

это переменная php! –

ответ

0

Вы можете только передать переменную в JavaScript следующим образом:

@section('javascript') 
<script> 
    var test = {{{$test}}}; 
</script> 
@stop 

затем в вашем файла JavaScript включен в нижней части вы можете использовать его:

alert(test); 

Позвольте мне только сказать, что это не является отличным способом обработки передаваемых переменных с php на javascript.

+0

Да, почему бы и нет! Но мне нужно объявить много переменной x). Это будет грязно, чтобы показать это в исходном коде. Я предпочитаю включать js-файл со всем объявлением. –

+0

Переменные будут отображаться в исходном коде страницы, если вы не получите их при вызове ajax после загрузки страницы. Если вы хотите очистить его в лезвиях, создайте частичный, который принимает массив '$ data', обходит его и создает все переменные javascript и включает в себя частичные требуемые представления. –

0

Когда мне нужно сделать что-то подобное, я обычно создаю метатег на странице, который будет содержать информацию о предупреждении.

<meta name="someAlertValue" content="{{{ $test }}}" /> 

Тогда вы можете очень легко захватить это через jQuery.

var alert_text = $('meta[name=someAlertValue]').attr('content'); 

Я считаю этот подход более чистым и ремонтопригодным, чем попытка сбрасывать переменные php непосредственно в ваш javascript.

+0

Мне нужно объявить много переменной x). Таким образом, главный тег будет очень большим. Я предпочитаю объявлять переменную в JS-файле. Но спасибо ! –

+0

Вы можете так же легко хранить JSON в атрибуте контента, и он будет содержать все ваши переменные одним выстрелом. http://stackoverflow.com/questions/7322682/best-way-to-store-json-in-an-html-attribute – user3158900