2016-05-30 18 views
2

下面是我的代碼來獲取我已經使用$ scope的所有鍵值。

$scope.Signup={}; 
$scope.Message=''; 
$scope.SubmitPhysicianSignup = function() 
{  
    var url = site_url + 'webservices/physician_signup'; 
    //console.log(url); 
    var physicianData = { 
     "user_name_title" : $scope.user_name_title, 
     "physician_first_name" : $scope.physician_first_name, 
     "physician_last_name" : $scope.physician_last_name, 
     "email_address" : $scope.email_address, 
     "conf_email_address" : $scope.conf_email_address, 
     "password" : $scope.password, 
     "confpassword" : $scope.confpassword, 
     "physician_gender" : $scope.physician_gender, 
     "physician_dob_date" : $scope.physician_dob_date, 
     "physician_dob_month" : $scope.physician_dob_month, 
     "physician_dob_year" : $scope.physician_dob_year, 
     "physician_profession" : $scope.physician_profession, 
     "medical_school" : $scope.medical_school, 
     "traning_year" : $scope.traning_year, 
     "medical_specialty" : $scope.medical_specialty, 
     "physician_minc" : $scope.physician_minc, 
     "physician_country" : $scope.physician_country, 
     "physician_state" : $scope.physician_state, 
     "physician_city" : $scope.physician_city, 
     "physician_address" : $scope.physician_address, 
     "physician_postal_code" : $scope.physician_postal_code, 
     "physician_phone_number" : $scope.physician_phone_number, 
     "physician_default_msg" : $scope.physician_default_msg, 
     "opt_number" : $scope.opt_number, 
    }; 
} 

我想知道有沒有什麼辦法來減少$範圍的使用,並得到所有鍵和$範圍的值

+0

難道你不能只循環$ scope對象嗎? (for $ scope中的var propName){console.log(propName); }' – TryingToImprove

+0

@TryingToImprove ^需要自己的屬性檢查...特別是在一個角度範圍內。 –

回答

0

通過你的數據我認爲這個數據會從形式拍攝,您可以通過NG-初始化一個JSON對象,得到所有的鍵和值是一個NG-模式。讓我們說ng-init =「x = {}」這會讓你成爲一個對象。然後你將擁有所有的輸入元素作爲鍵。 ng-modal =「user_name_title」會變成ng-modal =「x ['user_name_title']」等等。最後在提交時你可能只是將變量x作爲參數傳遞給控制器​​函數,並且可以使用它方式...您可以在加載後在控制器中檢查console.log(x)。

如果我錯了,請讓我知道。

-----------------已更新回答-------------------------

在提交時,我再次假設根據最佳實踐,您將不得不從工廠或服務發送http請求,而不是從控制器發送。假設您已經創建了一個名爲demoFactory的工廠,並且您的工廠中的提交表單函數變爲demoFactory.doSubmit(x)。 doSubmit()將保存$ http.post(「url」,x),其中x是從視圖傳遞給控制器​​到工廠到服務器的對象。並且在服務器端,您可以輕鬆讀取json。

+0

你的邏輯似乎是正確的,你已經在表單上創建了一個數組,並在提交時獲取該數組。 –

+0

我爲你更新了答案@Anandjain。看一看。 –

+0

不要擔心它運作良好。我一直在這樣做。這是一個很好的方法。 –

2

爲什麼不能簡單地通過$範圍循環對象與循環。下面

代碼將列出所有自己$範圍對象的屬性:

​​
+0

糾正我的舊評論,它只給出填充值的結果,那些空的字段。 –

+0

如果您有非默認參數列表,請檢查密鑰是否在該列表中。 –

2

您可以循環在$scope直接,但你要過濾的角度值。他們都以$$$開頭。

for (var key in $scope){ 
    if (key.charAt(0) != '$' && $scope.hasOwnProperty(key)) { 
    console.log($scope[key]) 
    } 
} 
相關問題