我试图将一个物体称为道具。 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(..
答案 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>