在angularjs中本地添加数据时更新ng-repeat列表

时间:2014-07-24 05:09:32

标签: angularjs

我有一个表显示来自websql本地数据库的数据列表。单击添加按钮列表的医生提供添加到数据库。添加已完成但问题是我无法更新数据列表和看到添加的记录。页面刷新后我可以看到添加的记录。任何人都可以帮助我。我在下面发布我的代码.html视图模板如下:

<table  class="table table-hover" >
<tr>
  <th>DOCTOR</th>
  <th>SPECIALITY</th>
  <th>PATCH</th>
  <th>CLASS</th>
  <th> </th>
</tr>
<tr ng-repeat="doc in listDoctors">
  <td>{{ doc.contactName }}</td>
  <td>{{ doc.speciality }}</td>
  <td>{{ doc.townName }}</td>
  <td>{{ doc.class }}</td></tr></table>  

现在控制器确实:

 //displays list of doctors
        $scope.listDoctors = [];
           readData.transaction(sqlDoctorDetails,0)
         .then(function (data) {
           $scope.listDoctors=data;
          });

将数据添加到数据库

 $scope.AddToList = function() {
  var db = openDatabase("database");
    db.transaction(function(tx) {
    tx.executeSql(insertStatement);
  });  

请帮助我改进代码,以便在将新条目添加到数据库时更新列表。 sqlDoctorDetails和insertStatement是我的查询变量,分别用于显示和插入数据。

2 个答案:

答案 0 :(得分:0)

我的Angular知识生疏,但我认为在插入数据库之后,您需要插入内存模型listDoctors或触发sqlDoctorDetails查询以将更新的数据读入{{ 1}}。

Angular会观察您的模型以进行更改,但它不会观察模型背后的数据库。

答案 1 :(得分:0)

在AddToList功能中,按下最新的医生详细信息,这也将更新列表

因此,每当您单击添加按钮并调用控制器功能时:

$scope.addDoctorToDB(doctorDetail){
     //add it to the doctor's list
     $scope.listDoctors.push(doctorDetail);
     //Now do the db operation say calling your add function
     this.AddToList();
}