将null Laravel模型值作为prop传递时,Vue抛出错误

时间:2017-12-13 23:18:18

标签: laravel model vue.js vuejs2

我试图将一个物体称为道具。 SELECT SUM (row_count) FROM sys.dm_db_partition_stats WHERE object_id=OBJECT_ID('Transactions') AND (index_id=0 or index_id=1)` 是我的Car模型,但它可以为null。

现在,在vue,我试图将它传递给我的组件:

Auth::user()->car

如果Car对象存在,则可以正常工作。但是,如果它为null,则vue抛出错误

  

[Vue警告]:无法生成渲染功能:

     

语法错误:

中的意外标记}

我知道我可以使用<my-comp :car="{{ Auth::user()->car }}"> </my-comp> 返回$car,但我很好奇为什么这种做法不起作用以及我做错了什么。

我尝试的其他方式:

return view()->with(..

3 个答案:

答案 0 :(得分: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中解码那个空字符串

答案 1 :(得分:0)

你想在汽车财产中传递整个Car对象吗?或者它只是汽车的名字?

如果你想要名字而不是字符串,那么你需要附上&#39;就像我在下面提到的那样:

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

如果它是对象,则需要在Vue组件的Mounted()方法中调用方法并使用Axios获取Car对象。

答案 2 :(得分:0)

我已经解决了上述问题 json_encode($ yourobject)。

json_encode($yourobject);

如果您需要更改vue组件,

<my-comp :car="@json(Auth::user()->car)"> </my-comp>
相关问题