Vue: 属性的空值导致模板编译失败

创建于 2016-10-18  ·  3评论  ·  资料来源: vuejs/vue

Vue.js 版本

2.0.3

复制链接

https://jsfiddle.net/jt3hjuwg/

重现步骤

绑定一个具有空字符串作为值的道具。 如果您要提供 JSON 对象或字符串null它将起作用,但如果您使用空字符串模板将无法编译。

我不确定这是否是 Vue 2 中的预期行为(它曾经在 Vue 1 中工作)。 然而,这感觉有点违反直觉。 例如,如果我将内容作为道具服务器端提供,我需要检查它是否存在,否则返回文字字符串null

什么是预期?

应用程序仍然呈现,但属性变为空字符串或 null。

实际发生了什么?

控制台中显示警告,应用程序无法呈现。

[Vue warn]: failed to compile template:

<review :review=""></review>

(found in root instance)

最有用的评论

@fnlctrl
你会如何用 Number 道具来做到这一点?

所有3条评论

您好,感谢您填写此问题。

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

您没有使用<review :review=""></review>设置空字符串。
正确的方法是: <review :review="''"></review> 。 回想一下 v-bind 需要 javascript 表达式。 https://jsfiddle.net/fnlCtrl/jt3hjuwg/1/

例如,如果我提供内容作为道具服务器端,我需要检查它是否存在,否则返回文字字符串 null。

你只需要给它一个空字符串'' ,就是这样。

Vue 没有更好的方法来处理这个问题吗? 或者可以提供一些更好的错误处理,而不是在发生这种情况时将一半的 DOM 转储到控制台中?

@fnlctrl
你会如何用 Number 道具来做到这一点?

此页面是否有帮助?
0 / 5 - 0 等级