2017-06-07 14 views
0

Ist es möglich, eine Variable vom Controller an Vuejs zu übergeben? Ich habe einige Antworten gelesen, aber nichts scheint für mich zu funktionieren. Ich möchte die Variable $ url an vue übergeben. Ich habe einige Sache wie dieseWie übergibt man eine Variable von Laravel 5.4 an Vuejs

versucht

var url = {!! $url !!}; das gibt mir Syntaxfehler: unerwartetes Token in app.js

Beispiel url http://eventregistry.org/json/suggestConcepts?prefix=sam&lang=eng&callback=JSON_CALLBACK

-Controller

class SearchCompanyName extends Controller 
{ 
    public function getcompanyname($name) 
    { 
     return "http://eventregistry.org/json/suggestConcepts?prefix=" . $name . "&lang=eng&callback=JSON_CALLBACK"; 
    } 

    public function index() 
    { 
     $url = $this->getcompanyname(Input::get("company_name_by_user")); 
     return view('searchcompany', ['url' => $url]); 

    } 
} 

vue App .js

Vue.component('search', require('./components/Searchnames.vue')); 
const search = new Vue({ 
    el: '#search', 
    data: { 
    }, 
    method: { 
     getMessages: function(){ 
      console.log('I am here') 
     }() 
    } 
}); 

Blattvorlage

@section('content') 
<div class="container"> 
{!! $url !!} 
<search></search> 
</div> 

@endsection 
+0

versuchen, eine Requisite zu addieren Suchkomponente: wie und fügen Sie in Ihrer vuejs-Komponente die Requisiten "url" hinzu und greifen Sie über this.url auf die URL zu. – Epitouille

+0

Was ist der Syntaxfehler? Was bedeutet die Quelle von var url = {!! $ url !!}; wie auf der Seite aussehen? – whoacowboy

+0

Syntaxfehler ist ein unerwartetes Token für var url = {!! $ url !!} – Imi

Antwort

1

Wenn Sie Ihren JavaScript-Variable in einem Skript-Tag innerhalb einer Blade-Datei deklarieren möchten, müssen Sie die Variable in Anführungszeichen wie so

<script> 
    var url = '{{ $url }}'; 
</script> 
+0

Danke das funktioniert, aber ich dachte, wie man auf diese Variable in app.js zugreifen – Imi

+0

@Imi Wie erreiche ich dies, indem ich alle PHP-Javascript-Variablen in meinem Haupt definieren Blade-Datei wie oben gezeigt und dann referenziere ich sie im Skript app.js. Stellen Sie sicher, dass Sie das Skript "app.js" aufrufen, nachdem Sie die Variablen deklariert haben. –

+0

Danke, wir wussten nicht, dass wir sowas machen können :) – Imi

1

setzen Sie können dieses Paket verwenden: https://github.com/laracasts/PHP-Vars-To-Js-Transformer

public function index() 
{ 
    JavaScript::put([ 
     'foo' => 'bar', 
     'user' => User::first(), 
     'age' => 29 
    ]); 

    return View::make('hello'); 
} 
+0

Da ich diese Antwort absolut unterstütze, kann ich diese nicht richtig mit laravel 5.4 arbeiten. Es kommt immer wieder mit 'The use statement mit nicht-zusammengesetzten Namen' Javascript 'hat keinen Effekt' – killstreet

Verwandte Themen