AngularJS ng-table - 方法中的休息调用 - 如何更新视图?

时间:2015-11-24 16:34:03

标签: javascript angularjs typescript ngtable

我有点问题。 我在桌上使用ng-table。现在我想使用一种在后端完成的过滤。我使用typescript,所以我的构造函数看起来像这样:

public constructor(private restService:restService){
this.tableParams = new NgTableParams({page: 1, count: 50}, {
  getData:  function(x) { 
    return  restService.getPage(x.count(),x.page()).then((data)=> {
   // do stuff
    return data.content;
}); } });

现在我在我的HTML和ng-change中有一个下拉列表我调用了我的方法,它使用filter作为queryParam进行休息调用并返回对象:

private methodA(){
restService.getPage(x.filter).then((data)=>{
//
});

HTML文件中的ng-table是这样的:

 <table ng-table="vm.tableParams" >
 <tr ng-repeat-start="x in $data track by x.id">
 ... </tr></table>

我现在的问题是:我在哪里放置方法A返回的对象,以便它在HTLM中的$ data中?我是否必须使用新的NgTableParams对象?如果是这样,我怎么能这样做,因为他只知道构造函数中的NgTableParams?

cliffnotes:我在一个方法(除了构造函数)之外有一个rest调用。我必须在哪里放置returnValue才能在HTML中看到它们?

我希望你能理解我的问题。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

在您的方法A()中,您需要将data指定给变量并将其设置为表格中的数据。如果http失败,您还应该使用回调函数

private methodA(){
restService.getPage(x.filter).success(function (data){
$scope.myData = data;
}, function (error) {
        alert("Error Retrieving Data");
        $q.reject(error);
});

然后在HTML中引用您的$scope.myData

<table ng-table="vm.tableParams" >
<tr ng-repeat-start="x in myData track by x.id">
... </tr></table>

从HTML

引用范围内的任何内容时,您不需要$