2014-11-06 13 views
0

我有一個簡單的註冊表單頁面。 表單頁面有一個person_id字段並且下拉列表名稱爲condition_code_1。 Person_id字段是必填字段,同時condition_code_1下拉列表是一個可選字段的意思,它是用戶選擇與否的可選字段。下拉列表的值通過specialConds數組獲取,數據從oracle db字段獲取。

我在Condition_code_1控制器的數據數組中存儲了下拉列表的值。問題是當我沒有選擇列表並提交表單時,angularjs拋出一個錯誤:無法讀取null的屬性'condCode1'。未選擇時如何忽略下拉列表。這裏有任何幫助。

1)Condition_code_1列表

<select id = "condition_code_1" 
      data-placeholder = "Please select" 
      ng-model   = "specialCond.condCode1" 
      ng-options  = "t.condCode as t.condDesc for t in specialConds" chosen> 
      <option value="">&nbsp;</option> 
    </select> 

2)Condition_code_1控制器

$scope.create = function() { 
    var data = {}; 

    data.personId = $scope.person_id; 
    data.conditionCode1 = $scope.specialCond.condCode1; 

    CondCodeSvc.create(data, function(res){ 
      jAlert('Create successfull'); 
    }, errSvc.errorHandler);     
}; 

回答

1

這是因爲不存在數據調用$ scope.create(前),因此,是未定義的,這意味着它不是一個對象,這意味着它不能擁有一個屬性,因此JavaScript會拋出錯誤。

嘗試:

var data = {}; 
$scope.create = function() { 

    data.personId = $scope.person_id; 
    data.conditionCode1 = $scope.specialCond.condCode1; 

    CondCodeSvc.create(data, function(res){ 
     jAlert('Create successfull'); 
    }, errSvc.errorHandler);     
}; 
+0

我已經找到了解決辦法。這不是數據。它是$ scope.specialCond不存在。無論如何,謝謝 – digit 2014-11-06 04:09:25

+0

嘿,很高興聽到你找到了解決辦法。這不是我的,所以你不應該接受我的答案,因爲它會誤導其他來這裏的人試圖找到你遇到的同樣問題的答案。您應該將解決方案作爲答案發布並接受!如果你仍然想「獎勵」我的貢獻,你可以只做+1。無論如何,祝你好運! – 2014-11-06 04:14:44

+0

注意..謝謝小費。 – digit 2014-11-06 04:18:17