更改视图后,AngularJS - Ng模型变为空

时间:2017-08-15 11:25:05

标签: javascript angularjs

所以我有一个名为个人信息的页面,其中包含 ng-models

e.g。

<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" />

然后,有一个继续按钮,该按钮会重定向到名为其他详细信息的新页面。

如果填写了继续按钮,则验证所有必填字段。如果所有字段都经过验证,它还会返回日志 - 或者:

SUCCESS

{result:
    { error: null }
}

FAIL

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

在“其他详细信息”页面中,它只是上一页输入的详细信息的GRID。然后,如果他们想要编辑他们的个人信息,可以在此页面中显示“编辑”按钮。

所以我使用ng-model检索存储在 saveDetailsInfo 服务中的数据。

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

然后,它在各自的领域上展示得非常好。现在的问题是,如果我想再次点击“继续”按钮来保存我的更改。它返回的错误是这些字段已经未定义,尽管这些值已在输入字段中打印并填充。

说实话,我不知道为什么它变为空,因为我认为我在处理数据检索方面做得恰到好处。

先谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我无法重新创建问题...但是快速解决方法是检查continue函数的值是否为null,如果它为null,则再次读取ng-model中的值(如它在dom树中显示的那样)然后使用这些数据来初始化并继续你需要对数据做什么。

很多时候会发生这种情况,因为函数在dom获取数据之前被初始化,因此为null ...