2017-03-01 166 views
0

我有我的HTML元素像這樣:angularjs創建動態表單元素

<body ng-controller="addController"> 
<div class="col-sm-10"> 

    <label class="control-label">tableName:</label> 
    <fieldset ng-repeat="tableName in tableNames"> 

     <input type="text" class="form-control" ng-model="tableName.tableName" /><br /> 
    </fieldset> 
    <button class="btn btn-default" ng-click="addNewTable()">Add tablename</button> 
    <input type="submit" ng-click="add()" />  
</div> 
<div> 
    <pre>{{tableNames|json}}</pre> 
</div> 
</body> 

此代碼生成一個文本框每次按鈕被點擊。

JS:

function addController($scope, $http) { 

     $scope.tableNames = []; 
     $scope.addNewTable = function (tableName) { 
      $scope.tableNames.push({}); 

     } 
} 

當我顯示錶名它給了我:

[{"tableName":"textboxvalue"},{"tableName":"textboxvalue"}]; 

但我打算越來越的輸出:

[{"tableName1":"textboxvalue","tableName2":"textboxvalue","tableName3":"textboxvalue"}]; 

我應該有改變在設計中以獲得期望的輸出。 在此先感謝。

+1

嘗試設置'NG-模型= 「表名[ '表名' +($索引+ 1)]」'對於輸入元件 –

回答

0

您每次都將對象推送到數組,但是您想要的是在數組中的對象中添加鍵值對。 嘗試此

$scope.tableNames = [{}]; 
    $scope.addNewTable = function (tableName) { 
     $scope.tableNames[0].tableName = "textboxvalue" ; 

    }