2013-05-16 56 views
0

先前的開發商被序列化表單數據使用jQuery是這樣的:這產生的結果看起來像這樣有沒有辦法在AngularJS中轉換類似於此Jquery方法的模型?

JSON.parse(JSON.stringify($('#form').serializeArray())) 

[ 
    {"name":"FirstName","value":"Roger"}, 
    {"name":"LastName","value":"Daughtry"}, 
    {"name":"SS__c","value":"123-45-6789"}, 
    {"name":"Birthdate","value":"05/05/2013"}, 
    {"name":"POB","value":"Portugal"}, 
    {"name":"Citizenship","value":"US"} 
] 

有沒有轉換$ scope.Model對象的簡單方法在AngularJS中使用這種相同的字符串格式?

回答

0
var result = []; 
angular.forEach($scope.Model, function(val, key){ 
    result.push({ name: key, value: val }); 
}); 
+0

非常感謝CD-我給這個一杆彈指一揮間! –

0

如果你預先知道模型的結構:

<form> 
    <input type="text" ng-model="Model.field1"> 
    <input type="text" ng-model="Model.field2"> 
    <input type="text" ng-model="Model.field3"> 
</form> 

會產生成一個對象。 scope.Model

編輯:如果你不知道型號名稱,但有屬性的名稱的地方,你可以解決這個以類似的方式:

<input type="text" ng-model="Model[field]" ng-repeat="field in NameOfFields"> 

Fiddle可能會有所幫助。

+0

謝謝河馬。不幸的是,我不知道這個模型。 –

+0

爲未知字段添加了一些提示。 – TheHippo

1

使用現有2種方法1線:

http://jsfiddle.net/9Qper/1/

function x($scope) { 
    $scope.Model = {}; 
    $scope.Model.a = 'asdf'; 
    $scope.Model.b = 'asdffff'; 
    $scope.Model.c = true; 

    console.log(angular.fromJson(angular.toJson($scope.Model))); 
} 

編輯:你的問題說:「字符串格式」,但你的代碼示例使用JSON.parse,這將給你回一個對象。如果你想要的對象,那麼只需使用$scope.Model,如果你想要的字符串(取決於你需要做什麼),你可以只使用angular.toJson($scope.Model)這將得到你的代碼字符串,或在你的HTML你可以{ {Model | JSON}}這將打印出您的標記模型(這樣你就可以換一個textarea周圍):

http://jsfiddle.net/9Qper/2/

+0

非常感謝蘭登! –

相關問題