2016-07-07 6 views
1

ng-repeatオプションを使用してSQLからデータをフェッチしてHTMLテーブルに表示したい場合は、テーブルセルの一部の値を編集する必要があります。私の問題は、私はコントローラの初期値だけを取得し、変更はコントローラに反映されないということです。ここに私のコードは次のとおりです。角度JS、複数挿入エラー

app.controller('CRUD_EntryController', function ($scope, CRUD_InternalEntryService) { 

GetStudentMarkDetails(); 

function GetStudentMarkDetails() { 
    var PromiseGetMarks = CRUD_InternalEntryService.GetMarkDetails(); 
    PromiseGetMarks.then(function (res) { 
     $scope.MarkList = res.data; 
    }) 

} 
$scope.mark = {}; 
$scope.save = function (MarkList) { 

    var index = 0; 
    $scope.MarkList.forEach(function (mark) { 
     console.log('rows #' + (index++) + ': ' + JSON.stringify(mark)); 
     alert(mark.M1); 
    } 

} 

表示:マークは、あなたのNGリピートの範囲に設定されているので$scope.mark = {};

<table class=" table table-condensed" id="myresul"> 
     <tr> 
      <th>Slno</th> 
      <th>Name</th> 
      <th>RegNo</th> 
      <th>ClassNo</th> 
      <th>M1</th> 
      <th>M2</th> 
      <th>M3</th> 
     </tr> 

     <tbody data-ng-repeat="mark in MarkList" > 
      <tr> 
      <td class="col-md-1" >#{{$index+1}}</td> 
      <td class="col-md-2" ng-model="mark.Fname">{{mark.Fname}}</td> 
      <td class="col-md-2">{{mark.RegNo}}</td> 
      <td class="col-md-1">{{mark.ClassNo}}</td> 
      <td class="col-md-1"><input type="number" value="{{mark.M1}}" ng-model="M1" class="form-control" /></td> 
      <td class="col-md-1"><input type="number" value="{{mark.M2}}" ng-model="M2" class="form-control" /></td> 
      <td class="col-md-1"><input type="number" value="{{mark.M3}}" ng-model="M3" class="form-control" /></td> 

      </tr> 
      <button data-ng-click="save(MarkList)" class="btn btn-success">Save</button> 
     </tbody> 

    </table> 

答えて

0

あなたはこれを定義する必要があると思うしないでください。これはやや紛らわしく、将来エラーが発生する可能性があるため、削除してください。

value="{{mark.M1}}"を削除し、モデルをng-model="{{mark.M1}}"にバインドします。あなたの入力にM1、M2、M3をバインドするように指示する。

詳しくは、angular docs for ngModelを参照し、コードを適宜更新してください。あなたはSave(..)の引数としてMarkListを渡す必要はありません、あなたがこれを行うことができところで

<button data-ng-click="save()" class="btn btn-success">Save</button>Save()Saveメソッドのシグネチャを変更し、代わりに引数MarkList$scope.MarkListを使用しています。

または、毎回リスト全体ではなく特定のmarkを保存するようにメソッドを変更してください。

+0

ありがとう、それは私のために働く – jomon

+0

問題はありません!問題が解決したら、それをanswerdとしてマークしてください。 –