2017-12-13 5 views
0

オブジェクトを小道具として呼び出そうとしています。 Auth::user()->carは私の車モデルですが、nullでもかまいません。Nara Laravelモデル値を小道具として渡すときにVue投げエラーが発生する

さて、VUEに、私は私のコンポーネントに渡ししようとしています:Carオブジェクトが存在する

<my-comp :car="{{ Auth::user()->car }}"> </my-comp> 

場合、それは動作します。このアプローチは機能していないと私は間違って何をやっている理由しかし、それがnullの場合、VUEは

[Vue warn]: Failed to generate render function:

SyntaxError: Unexpected token } in

エラーがスローされます私はreturn view()->with(..を使用して$carを返すことができます知っている、しかし、私は好奇心旺盛です。


私が試した他の方法:

<my-comp :car="{{ Auth::user()->car ? Auth::user()->car : null }}"> </my-comp> 

<my-comp car="{{ Auth::user()->car }}"> </my-comp> 

答えて

0

は、あなたが車プロパティに全体Carオブジェクトを通過したいですか?それとも車の名前なのでしょうか?

あなたが名前をしたい場合、それは文字列であるよりも、私は下記のようなもののためにあなたが「添付する必要があります。

<my-comp :car="'{{ Auth::user()->car ? Auth::user()->car : null }}'"> </my-comp> 

、それはあなたがVueののマウント()メソッドでメソッドを呼び出す必要がありますよりも、オブジェクトの場合をAxiosを使用してCarオブジェクトを取得します。

+0

にそのnull文字列をデコードすることができますこれは、文字列、代わりに車のオブジェクトではありません。 objectがnullの場合、エラーをスローします。 (私は問題はないと思うが、私はLaravel Sparkを使う) – senty

1

空の文字列を使用すると、テンプレートのコンパイルが失敗します。

<my-comp :car=""></my-comp>で空の文字列を設定していません。

正しい方法は<my-comp :car="''"></my-comp>です。

v-bindは、javascript式が必要です。

ので、あなたが試みることができる:

<my-comp :car="{{ Auth::user()->car ? Auth::user()->car : 'null' }}"> </my-comp> 

をして、あなたはVUE

+0

しかし 'Auth :: user-> car'はObjectであり、Stringではない。ダンプ( 'dd()')では、オブジェクトの値がnullのときに失敗することを確認できます。 – senty

+0

これはすべて問題ありません。なぜオブジェクトが提供されていないときにコンパイルが失敗するのかを伝えています。そして私は、バックエンドからvueコンポーネントにフォーマットされたより良いデータをバインドしたいと思っています。そうすれば、作業がはるかに簡単になります! –

+0

あなたは正しいです、実際には何もエラーを投げずに働いた 'ヌル' – senty

関連する問題