2017-01-18 9 views
0

私はangular.jsを使って同じことをしたいと思います。入力欄に入力するたびに更新する必要があるテーブル行があります。角度アプリ以下入力ボックスに数字を入力して、anglejを使って動的に行を追加してください。

<input type="text" id="member" name="member" value="">Number of members: (max. 10)<br /> 
<a href="#" id="filldetails" onclick="addFields()">Fill Details</a> 
<div id="container" /> 
<script> 
    function addFields() { 
     var number = document.getElementById("member").value; 
     alert(number); 
     var container = document.getElementById("container"); 
     while (container.hasChildNodes()) { 
      container.removeChild(container.lastChild); 
     } 
     for (i = 0; i < number; i++) { 
      container.appendChild(document.createTextNode("Member " + (i + 1))); 
      var input = document.createElement("input"); 
      input.type = "text"; 
      container.appendChild(input); 
      container.appendChild(document.createElement("br")); 
     } 
    } 
</script> 

demo fiddle

+1

あなたはAngularJSを利用していません。 [ボタンクリックで要素を作成する方法は?](// stackoverflow.com/q/25183186) – Tushar

+0

'ng-repeat'を使用して_n_要素を表示します。アンカーをクリックすると、 'repeat'が適用されている配列を更新します。 DOMは自動的に更新されます。 – Tushar

+0

明確ではありません。フィールドのNナンバー(入力ボックスから取ったもの)を動的に作成しますか?もしそうなら、単純なng-repeatで行うことができます –

答えて

0

はあなたの質問から、添付のJavaScript(フィドル)..に何をしたかを動的に似ています..これはあなたを助けるだろうと思う

Example Fiddle

HTML:

<div ng-controller="MyCtrl"> 
    <input type="number" ng-model="myvalue" ng-change="addFields()"> {{myvalue}} 
    <div ng-repeat="list in lists"> 
     Member {{list.id}} 
     <input type="number" ng-model="list.value"> 
    </div> 
</div> 

JS:

var myApp = angular.module('myApp', []); 
function MyCtrl($scope) { 
    $scope.myvalue = ""; 
    $scope.addFields = function() { 
    $scope.lists = []; 
    for (i = 0; i < $scope.myvalue; i++) { 
    $scope.tempobj = {}; 
    $scope.tempobj.id = i; 
    $scope.tempobj.value = ""; 
    $scope.lists.push($scope.tempobj); 
    } 
} 
} 
関連する問題