2017-04-10 39 views
1

我有我的角度JS觀點如下創建文本字段的字符串動態對象,在angularjs

<label class="control-label">Name:</label> 
    <input type="text" class="form-control" ng-model="config.name" /> 
<br /> 

<label class="control-label">versionSpecificApiConfig:</label> 
<input type="text" class="form-control" ng-model="config.versionSpecificApiConfig" /> 
<br /> 

<label class="control-label">schemaUrl:</label> 
<input type="text" class="form-control" ng-model="config.versionSpecificApiConfig.schemaUrl" /> 
<br /> 

我這樣做,因爲我需要配置對象的結構如下,

{ 
"name":"string", 
"versionSpecificApiConfig":{ 
    "string":{ 
      "schemaUrl":"string" 
      } 
     } 
    } 

但出現錯誤「無法在versionSpecificApiConfig字段中爲字符串設置屬性」。請幫助我創建這樣的結構(結構中的「字符串」是指特定文本框的相應值)。

+1

你的對象結構是錯誤的。試試這個:{ 「名」: 「串」, 「versionSpecificApiConfig」:{ 「串」:{ 「schemaUrl」: 「串」 }} } 如何 – Jenny

+0

將這項工作?輸入框是文本,但是'versionSpecificApiConfig'似乎是一個對象。 – Claies

+0

@Jenny我怎麼才能達到這樣的對象結構,就像你說的那樣。請幫助 –

回答

0

你想要這樣的東西嗎?

var app= angular.module("app" , []); 
 
app.controller('Ctrl', ['$scope', Ctrl]); 
 
function Ctrl($scope){ 
 
$scope.config = {}; 
 
$scope.Print = function(){ 
 
    console.log($scope.config); 
 
} 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div ng-controller="Ctrl" ng-app="app"> 
 
<label class="control-label">Name:</label> 
 
    <input type="text" class="form-control" ng-model="config.name" /> 
 
<br /> 
 

 
<label class="control-label">versionSpecificApiConfig:</label> 
 
<input type="text" class="form-control" ng-model="config.versionSpecificApiConfig.string.schemaUrl" /> 
 
<br /> 
 

 
<label class="control-label">schemaUrl:</label> 
 
<input type="text" class="form-control" ng-model="config.versionSpecificApiConfig.string.schemaUrl1" /> 
 
<br /> 
 

 
<button type="button" ng-click="Print()">Click to see object</button> 
 
<br/> 
 
{{config}} 
 
</div>

+0

幾乎是我正在尋找的答案。但結構中的「字符串」必須是versionSpecificApiConfig文本框值的值。 –

+0

嘿謝謝你的回覆,但事情是我想要你在第一條評論中提出的結構好。 versionSpecificApiConfig:{「String」這必須是versionSpecificApiConfig文本框的值。然後依此類推。@ Jenny –

+0

@swaroopsg我的第一個答案在編輯之前是根據我的評論。 – Jenny

0

我試圖解決有關此和它的作品完美,請您嘗試一下,讓我們知道。

<form ng-submit="func(config)"> 
     <label class="control-label">Name:</label> 
      <input type="text" class="form-control" ng-model="config.name" /> 
     <br /> 

     <label class="control-label">versionSpecificApiConfig:</label> 
      <input type="text" class="form-control" ng-model="config.versionSpecificApiConfig" /> 
     <br /> 

     <label class="control-label">schemaUrl:</label> 
      <input type="text" class="form-control" ng-model="config.schemaUrl" /> 
     <br /> 

     <button type="submit"> Save </button> 
     </form> 

$scope.func = function(Obj){ 
     var keyObj = {}; 
     var versionObj = {}; 
     var data = {}; 

     var key = Obj.versionSpecificApiConfig; 

     keyObj['schemaUrl'] = Obj.schemaUrl; 

     versionObj[Obj.versionSpecificApiConfig] = keyObj; 

     data['name'] = Obj.name; 
     data['versionSpecificApiConfig'] = versionObj; 
     console.log(data); 
     var Json = JSON.stringify(data); 
     console.log(Json); 
    }