laravel - 将 null Laravel 模型值作为 Prop 传递时 Vue 抛出错误

标签 laravel model vue.js vuejs2

我正在尝试调用一个对象作为 Prop 。 Auth::user()->car 是我的 Car 模型,但它可以为 null。

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

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

如果 Car 对象存在,它就起作用。但是,如果它为 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>

最佳答案

如果您使用空字符串,模板将无法编译。

您没有使用 <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中解码那个空字符串

关于laravel - 将 null Laravel 模型值作为 Prop 传递时 Vue 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803578/

相关文章:

mysql - 表中没有记录时无法获取地理点

javascript - 从选择框中获取选定的值

PHP 特征 "Method does not exist"

model - 使用 zeromq 实现actor模型

database - 如何连接SQLite3数据库服务器?

typescript - Vue 3.0 中的事件处理更改?

mysql - 两个 Laravel 应用可以使用同一个数据库吗?

Django channel 实时聊天保存发送的消息

vue.js - vuelidate 异步验证器 - 如何去抖动?

vue.js - 如何在 Electron 应用激活事件上加载某些路线