2017-03-13 10 views
0

現在、AngularJSでアプリケーションを作成していますが、入力フィールドでng-modelを使用しているときに問題を見つけました。ng-modelでのデフォルトの入力フィールド値のバインド

ユーザが1つの入力フィールドにテキストを入力しない場合、デフォルト値をng-modelにバインドする方法はありますか?コードのサンプルを以下に示します。

<input class="formInput" placeholder="{{ testVar.hasName.name }}" type="text" id="nameUpdate" ng-model="upd.name"> 

ユーザーはデータを更新します。プレースホルダには既存のデータ(この場合は名前)が表示され、このフィールドを更新するとモデルにバインドされます。ただし、ユーザーがこの特定のフィールドを更新しない場合は、既存の値をモデルにバインドするにはどうすればよいですか?私は、入力に値= "xyz"を与えることが気づいたことがあります。

デフォルトではこの情報をコントローラに定義することには注意してください。これは、testVar内のデータが変化するため、許容できない解決策です。

ご協力いただきありがとうございます。

+0

は、なぜあなたはプレースホルダーとしてだけではなく、テキストボックスに値として既存のデータを表示していますか? –

答えて

0

ない最善の方法がありますが、ng-initの助けを借りて、デフォルト値を初期化することができます

<input class="formInput" 
     placeholder="{{testVar.hasName.name}}" 
     type="text" 
     id="nameUpdate" 
     ng-init="upd.name='defaultTextHere'" 
     ng-model="upd.name"> 
+0

これは私が探しているようですが、これに変数をバインドすることは可能ですか? ng-init = "{{testVar.hasName.name}}"は文字列を正しく保持しますが、ng-init = "{{testVar.hasName.name}}"はコントローラに値を送信しません。 – denverCoder9

+0

アラートでupd.nameを印刷すると、未定義となります。 – denverCoder9

+0

まだ定義されていません:( – denverCoder9

関連する問題