2017-08-15 55 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得到之前的數據,因此空...