Vue: プロパティの値が空の場合、テンプレートのコンパイルが失敗します

作成日 2016年10月18日  ·  3コメント  ·  ソース: vuejs/vue

Vue.jsバージョン

2.0.3

複製リンク

https://jsfiddle.net/jt3hjuwg/

再現する手順

値として空の文字列を持つ小道具を​​バインドします。 JSONオブジェクトまたは文字列nullすると機能しますが、空の文字列を使用すると、テンプレートのコンパイルに失敗します。

これがVue2で予期される動作であるかどうかはわかりません(以前はVue 1で機能していました)。 しかし、それは少し直感に反しているように感じます。 たとえば、コンテンツをプロップサーバー側として提供している場合は、コンテンツが存在するかどうかを確認し、存在しない場合はリテラル文字列null返す必要があります。

何が期待されますか?

アプリケーションは引き続きレンダリングしますが、プロパティは空の文字列またはnullになります。

実際に何が起こっているのですか?

コンソールに警告が表示され、アプリケーションはレンダリングに失敗します。

[Vue warn]: failed to compile template:

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

(found in root instance)

最も参考になるコメント

@fnlctrl
ナンバープロップでどうしますか?

全てのコメント3件

こんにちは、この問題を埋めてくれてありがとう。

空の文字列を使用すると、テンプレートのコンパイルに失敗します。

<review :review=""></review>空の文字列を設定していません。
正しい方法は次のとおりです: <review :review="''"></review> 。 v-bindはjavascript式を想定していることを思い出してください。 https://jsfiddle.net/fnlCtrl/jt3hjuwg/1/

たとえば、コンテンツをプロップサーバー側として提供している場合は、コンテンツが存在するかどうかを確認し、存在しない場合はリテラル文字列nullを返す必要があります。

空の文字列''するだけで、それだけです。

Vueがこれに対処するためのより良い方法はありませんか? または、これが発生したときにコンソール内にDOMの半分をダンプする代わりに、より良い種類のエラー処理を提供することは可能ですか?

@fnlctrl
ナンバープロップでどうしますか?

このページは役に立ちましたか?
0 / 5 - 0 評価