2017-08-15 28 views
0

因此,我有一个页面,称为个人信息页面与分配ng模型AngularJS - 吴模型在更改视图后变为空

例如

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

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

继续按钮验证所有必填字段,如果填写它也返回日志,如果所有字段进行验证 - 无论是:

成功

{result: 
    { error: null } 
} 

失败

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

在其他详细信息页面中,它只是上一页中输入的详细信息的网格。然后,如果他们想要编辑个人信息中的某些内容,则在此页面中有一个“编辑”按钮。

因此,我使用ng-model来检索存储在saveDetailsInfo服务中的数据。

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

然后,它在各自的字段上显示得很好并且正确。现在的问题是,如果我试图再次点击“Continue”按钮来保存我的更改。它返回一个错误,表示这些字段已经是undefined,尽管这些值已经打印并填充在输入字段中。

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

感谢您的帮助!

+0

在控制器放的开头:$ scope.foo = {名称:“”,地址:” ',年龄:''};看看是否修复它 – rrd

+0

请发布更多的代码。 继续按钮到底做了什么? –

+0

继续功能只是检查是否填写所有必填字段。然后它有部分'var data = angular.fromJson(angular.toJson($ scope.formName));'数据是服务被调用时的参数。我想我已经做对了,但奇怪的是,当我尝试登录其中一个字段时,它返回'undefined'。 – alleycat

回答

0

我不能重新创建问题......但快速修复的方法是检查继续函数上的值是否为空,如果它为空,则再次从ng模型中读取值(如在dom树),然后使用这些数据初始化并继续处理数据。

很多时候,这种情况发生,因为该函数初始化DOM得到之前的数据,因此空...