フォームを使用していくつかのデータを動的に挿入するHTMLファイルに単純なネストされたjsonが埋め込まれています。Angularjs - 子アイテムを動的にプッシュすることができません
親レベルにデータを挿入できますが、子レベルに挿入することはできません。私が間違っていることは何ですか?ここで
はコードです:
<div class="container" ng-app="myApp" ng-controller="myCtrl">
<label>Enter Data</label>
<input ng-model="name" type="text">
<input ng-model="rollno" type="number">
<input ng-model="id" type="text">
<button ng-click="addData(data)">Enter Data</button>
<table class="table table-bordered">
<tr>
<th>Sr No</th>
<th>Name</th>
<th>Roll No</th>
<th>Subjects</th>
<th>Delete</th>
</tr>
<tr ng-repeat="data in myData">
<td>{{$index+1}}</td>
<td>{{data.name}}</td>
<td>{{data.rollno}}</td>
<td ng-repeat="subject in data.subjects">{{subject.id1}}, {{subject.id2}}</td>
<td><a href="" ng-click="removeData($index)">remove</a></td>
</tr>
</table>
</div>
<script>
var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope){
$scope.myData =[{"name":"Jon","rollno":123,"subjects":[{"id1":"Maths","id2":"Hindi"}]},{"name":"Ron","rollno":234,"subjects":[{"id1":"English","id2":"Hindi"}]}];
$scope.addData = function(data){
$scope.myData.push({name:$scope.name,rollno:$scope.rollno,id1:$scope.id1});
}
$scope.removeData = function(index){
$scope.myData.splice(index, 1);
}
});
</script>
あなたが親と子のレベルとはどういう意味ですか? JSONデータについて話していますか?あなたの好きな例を挙げてください。 – forethought
私はこのデータを私と一緒に持っています - {"name": "Jon"、 "rollno":123、 "subjects":[{"id1": "数学"、 "id2": "ヒンディー語}}}}、{" "Ron"、 "rollno":234、 "subjects":[{"" id1 ":"英語 "、" id2 ":"ヒンディー語 "}]}今度は、NameをSharon、RollNoを345、Id1をHistoryとして使用してもう1つの行を追加したいとします。しかし、Id1とId2は子レベルにあるため、テーブルに挿入できません。 – user3719049
関数addDataが呼び出された場所を表示せず、 'データ'も使用しませんでした。しかし、 '科目'を挿入したい場合は、var newSubjects = [{id1: 'History'、 'id1': '英語'}]のようにすることができます。 $ scope.myData.push({name: 'newData'、rollno: 'newRollno'、subjects:newSubjects}); – user1111