Angularjs-视图未更新,因为数据已更改

时间:2015-02-26 00:05:11

标签: angularjs

我是AngularJS的新手。实现了一个小应用程序,用于列出服务器的引号。

在页面上,我有一个列出引号的按钮。用户单击它,显示列表从服务器获取它。同样在同一页面中,可以选择添加新的引号,单击该按钮会显示文本区域以输入新报价,并显示保存&清除按钮。

这一切都很好。

在输入新报价并单击保存时,后端(db)上会发生保存,但列表未更新,显示新添加的报价。 这是saveQuote函数:

$scope.saveQuote = function () {
  $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
  var fh = new FormHelper();
  if ($scope.quoteId) {
    fh.append("quoteId", $scope.quoteId);
  }
  fh.append("description", $scope.description);
  $http.post("http://localhost:8080/VL1.1/saveQuote", fh.data).
  success(function (response) {
    alert("in save quote");
    $scope.quote.description = $scope.description;
    upDatedQuoteList(response, "save quotes");
    //$scope.quotelist=response.quotelist;
  });
};

 //$scope.$watch('quotelist')

function FormHelper() {
  this.data = "";
  this.append = function (name, val) {
    if (this.data.length > 0) {
      this.data += "&";
    }
    this.data += encodeURIComponent(name);
    this.data += "=";
    this.data += encodeURIComponent(val);
  };
};

这是upDatedQuoteList函数:

function upDatedQuoteList(response, msg) { 
    alert(msg); 
    $scope.quotelist=response.quotelist; 
    if($scope.quotelist.length > 0) { 
        alert("setting showlist"); 
        $scope.showlist= true; 
    } 
};

检查流程的一些警报。 Pl忽略了他们。

这是视图模板

<div ng-show="showlist">
<table border="1" border-collapse="true">
    <tr class="even">
        <th style="width:20px; word-wrap: break-word;">Sl No</th>
        <th style="width:800px; word-wrap: break-word;">Description</th>
    </tr>
    <tr ng-repeat="x in quotelist" >
        <td style="width:20px; word-wrap: break-word;">{{ $index+1 }}</td>
        <td style="width:800px; word-wrap: break-word;" >{{ x.description }}</td>
        <td style="width:20px; word-wrap: break-word;"><button ng-click="editQuote(x)">Edit</button></td>
    </tr>
</table>
</div>

高度请求你的帮助。

0 个答案:

没有答案