v-bind 表达式的值不能为空。在“v-bind:items”中找到

Posted

技术标签:

【中文标题】v-bind 表达式的值不能为空。在“v-bind:items”中找到【英文标题】:The value for a v-bind expression cannot be empty. Found in "v-bind:items" 【发布时间】:2021-09-21 02:07:19 【问题描述】:

我是 Vue 的新手。我正在使用如下的 vue 组件,如果可用,我将通过组件传递一些对象。

<form :languages=' json_encode($languages) '
      :items=' !empty($items) ? $items : "" '>
</form>

我正在使用这个 vue 组件来创建新条目和编辑现有条目场景。所以,这个 :items (它是对象列表)只有在使用编辑功能时才具有值。但如果它是创建新功能,它就没有这个:项目。当我使用这个 vue 组件来添加新功能时,它给了我以下错误并且没有加载 vue 组件。

错误信息:

我想为我已经提到的两个场景(创建新和编辑函数)加载这个 vue 组件,那么有什么方法可以实现吗?

【问题讨论】:

请为您的问题提供***.com/help/mcve。 items 应该是什么?在您的情况下,它的计算结果为 :items="",这是一个错误。 @Estus Flask 我已经编辑了这个问题,它描述了这是什么:items。 请坚持技术观点并检查***.com/help/mcve。它是一个对象吗?数组?一个字符串?当它是空的时,你到底期望它是什么?空值?空字符串?空物体?这个问题非常具体到问题中没有提到的 php,如果 Vue 代码是单独用 JS 从头开始​​编写的,你可能不会遇到这个问题。尝试在 Vue 中编写正确的表达式,然后从 PHP 中提供相应的值。 【参考方案1】:

v-bind 不允许空的绑定表达式值,如果 empty($items) 的计算结果为 true,就会发生这种情况。

对于这种情况,您可以将其设置为空数组:

<form :items=' !empty($items) ? $items : "[]" '>
                                            ?

【讨论】:

以上是关于v-bind 表达式的值不能为空。在“v-bind:items”中找到的主要内容,如果未能解决你的问题,请参考以下文章

第六节:Vue指令:v-bind动态属性绑定

v-bind 和v-model 的区别

Vue指令2:v-bind

VUE-基本的写法

VUE-基本的写法

vue内置指令详解——小白速会