2017-08-15 6 views
0

私はという個人情報ページにng-modelsというページが割り当てられています。ビューを変更するとAngularJS - NGモデルがnullになる

<input type = "text" name = "foo_name" ng-model = "foo.name" /> 
<input type = "text" name = "foo_address" ng-model = "foo.address" /> 
<input type = "text" name = "foo_age" ng-model = "foo.age" /> 

その後、その他詳細と呼ばれる新しいページにリダイレクト Continueボタンをあります。

を記入場合ボタンは必要なすべてのフィールドを検証している続行し、すべてのフィールドが検証されている場合、それはまた、ログを返します - 次のいずれか。

SUCCESS

{result: 
    { error: null } 
} 

FAIL

{result: 
    { error: 
     { 
      blah blah blah 
     } 
    } 
} 

[その他の詳細]ページでは、前のページで入力した詳細のGRIDです。そして、自分の個人情報で何かを編集したい場合は、このページに「編集」ボタンがあります。

したがって、saveDetailsInfoサービスに格納されているデータを取得するのにng-modelを使用しています。

$scope.retrieveData = function(dataFromService) { 
    $scope.foo = { 
     name: dataFromService.entry.name, 
     address: dataFromService.entry.address, 
    } 
} 

次に、それぞれのフィールドにきれいに表示されています。今問題は、"続行"ボタンをもう一度押して変更を保存しようとしている場合です。これらのフィールドは既にで定義されていませんですが、入力フィールドには値が印刷されて入力されているというエラーが返されます。

正直言って、なぜ私はデータの取得を処理するのにちょうど良いと思っていたので、それがnullになったのかどうかわかりません。

ありがとうございました!

+0

お使いのコントローラプットの開始時:$のscope.foo = {名:「」、アドレス:」 '、年齢:' '};それが修正されるかどうかを確認してください – rrd

+0

もっとコードを投稿してください。 [続行]ボタンではどういうことがありますか? –

+0

Continue機能は、必要なすべてのフィールドが入力されたかどうかをチェックするだけです。次に、 'var data = angular.fromJson(angular.toJson($ scope.formName));'という部分があります。ここで、dataは、サービスが呼び出されているときのparamsです。私はそれを正しくしたと思うが、フィールドの1つを記録しようとしたときに「未定義」を返すということは変だ。 – alleycat

答えて

0

私は問題を再現できません...しかし、迅速な修正は、値が継続機能でヌルであるかどうかをチェックすることです。ヌルであれば、ng-modelから値を再度読み取りますそれらのデータを使用して、データの処理を初期化し、続行します。

DOMはそれのデータとなり、ヌルなる前に機能が初期化されるので、何度もこれが起こる...

関連する問題