2017-02-15 8 views
3

Я использую taginput для некоторой операции пометки. Я хочу добавить значение по умолчанию в поле тега, которое отправляется с контроллера. Но кажется, что способ, которым я пытаюсь использовать выражение js, не работает. Может кто-нибудь мне помочь. Вот код.Напишите выражение js внутри шаблона лезвия ларавеля

<script> 
    var cities = new Bloodhound({ 
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'), 
        queryTokenizer: Bloodhound.tokenizers.whitespace, 
        local: members 
       }); 
       cities.initialize(); 
    var elt = $('#researcher'); 
       elt.tagsinput({ 
        itemValue: 'value', 
        itemText: 'text', 
        allowDuplicates: false, 
        typeaheadjs: { 
         name: 'cities', 
         displayKey: 'text', 
         source: cities.ttAdapter() 
        } 
       }); 
    @foreach ($memberResearch->member as $member) 
     {!! $text = $member->firstName." ".$member->lastName !!} 
     {!! $id = $member->member_id !!} 
     @if($member->pivot->role == "Researcher") 
      elt.tagsinput('add' , {"value" : {{ $id }} , "text" :{{ $text }} }); 
     @endif 
    @endforeach 
</script> 
+0

PHP запускаемую перед JS – C2486

+0

Тогда что должно быть сделано? –

ответ

3

PHP и Javascript - это два очень разных объекта.

Для такого рода материалов наилучшим подходом является то, что laravel позволяет выгрузить содержимое (данные) на страницу где-нибудь, где может появиться интерфейс (javascript).

Например:

// controller 
    $appConfig = [ 'foo' => 'bar' ]; 

    // blade 
    <script> 
     var AppConfig = {!! ! empty($appConfig) ? json_encode($appConfig) : "{}" !!}; 
    </script> 

    // js 
    var foo = JSON.parse(AppConfig).foo; 
    console.log(foo); // outputs bar 
+0

Да, да, вы должны – Chris

+0

Я имею в виду, должен ли я назначать данные php переменной js, а затем использовать это? –

+0

Да. Кроме того, вы можете настроить API для использования вашего интерфейса, что вы делаете в более крупных приложениях. Но для простого прохождения данных, демпинга данных в лезвии, то выбор его обратно в js - это путь. Вы также можете использовать что-то вроде: https://github.com/JeffreyWay/PHP-Vars-To-Js-Transformer – Chris