2016-05-14 8 views
2

私は、データベースに格納されている既存のフィールド値を各入力に取り込むユーザーデータを更新するためのフォームを用意しています。しかし、新規ユーザーの場合、特定の値はまだデータベースにコミットされていないので、入力ボックスを空白にしたいと思います。玉変数の補間 - プロパティが未定義の場合のデフォルト値?

ユーザーデータを表示するために、私は翡翠の補間機能を使用してroutes.jsファイルで渡された#{user.local}オブジェクトを確認しています。

それはこの(スニペット)のようになります。

input(type="text", name="firstname", value="#{user.local.firstName}") 

プロパティが定義されている場合これはうまく動作しますが、それは(正確に)プロパティが定義されていない入力にテキストとしてundefined挿入します。

変数が設定されていない場合、変数をデフォルトに設定する方法はありますか?

ような何か:ヒスイを使用して

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 
+0

あなたは、このための解決策を見つけたことがありますか?私は現在、まったく同じ問題を抱えており、解決策を探しています。 – Stefan

+0

翡翠自体ではない。私はちょうど私のコントローラにいくつかのロジックを追加する必要があるので、データを取得するときに 'undefined'を空の文字列などに置き換える必要があると思っています。そのデータはルータ経由でビューに渡されます。 – armadadrive

+1

jade〜1.9.2を使用すると、 '' input(type = 'text' class = 'フォームコントロール' id = 'line6Name' name = 'param6' value = '#{device.param6 || "}}) '' 'は、私がそれをするときに、未定義の値に対して空の文字列のデフォルトを与えます。私は、あなたが二重引用符が閉じている場所に移動した場合には、そこにあるコードを喜んで利用しています。 –

答えて

2

〜1.9.2は、私が書いている形で

input(type='text' class='form-control' id='line6Name' name='param6' value='#{device.param6||""}') 

を試してみました。定義されていない値に対しては、デフォルトで空の文字列が返されます。

締め括ぎの二重引用符がどこにあるかを変更した場合、あなたが使用するコードを賭けても構わないと思います。

から:

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 

へ:

input(type="text", value="#{user.local.firstName || 'Default Text'}") 
+0

これは魅力のように動作します。あなたが正しいとわかります - 私の中括弧は最後の引用符の前に終わったはずです。 – armadadrive

関連する問題