ng-repeat没有加载我的对象数组

时间:2019-06-21 23:55:15

标签: angularjs

我有一个函数,它通过rest请求返回几个json,这些json的数据存储在一个数组中。

然后将此数组放入$ scope并在ng-repeat中使用,但不起作用。

// JS

async function exec_q(access_token, start_date,end_date,programa_gql){
   var people = [];
...requests and filling the array...
   people.push({
      "atrib1": res.1 === null ? '' : res.1,
      "atrib2": res.2 === null ? '' : res.2
   }
   return people
}

people = await exec_q(access_token, start_date,end_date,programa_gql)
$scope.people = people

// HTML

<tbody id="table_apd_body">
   <tr ng-repeat="p in people">
      <th>{{{$index + 1}}</th>
      <th>{{p.atrib1}}</th>
      <th>{{p.atrib2}}</th>
   </tr>
</tbody>

Obs:调用上面代码的函数也是异步的,以使等待工作正常。

2 个答案:

答案 0 :(得分:3)

async / await使用的ES6承诺未与AngularJS框架及其摘要周期集成。

people = await exec_q(access_token, start_date,end_date,programa_gql)
$scope.people = people

$scope.$apply();

使用$apply集成$scope更改。

答案 1 :(得分:0)

///删除额外的{in {{$ index + 1}}}

<tbody id="table_apd_body">
   <tr ng-repeat="p in people">
      <th>{{$index + 1}}</th>
      <th>{{p.atrib1}}</th>
      <th>{{p.atrib2}}</th>
   </tr>
</tbody>