数据之前的AngularJS加载指令

时间:2018-12-13 13:24:34

标签: angularjs

我对AngularJS中的自定义指令有疑问。

我的作用域中有一个列表,一个用于在具有ng-repeat的表中创建tr行的对象的列表。 tr行是一个自定义指令。

我有类似的东西:

<tr custom-tr ng-repeat='element in list'></tr>

由于列表是通过HTTP调用填充的,因此列表会逐渐填充,因为我对JSON响应中的每个结果都有一个foreach:

promise.then(function(json) {
  json.data.foreach(function(response) {
      other_promise.then(funtion(element) {
        $scope.list.push(element);
    })
  })

})

因此,随着$ scope.list逐渐获得新元素,我的表应该每次显示一个新行,但实际上它等待foreach的结尾再呈现TR。

当我查看检查器的“网络”选项卡时,我注意到tr行的HTML模板是在所有承诺之后加载的。

Network inspector

有没有一种方法可以预加载模板,以便在完成所有承诺之前可以看到表中的行?还是我应该做些不同的事情?

先谢谢您

1 个答案:

答案 0 :(得分:1)

关于第一个解决方案(ng-if),我前段时间曾考虑过,但是即使列表不为空(至少一个元素),也并不意味着html模板会在加载时加载最后。您可以有35个元素,如果所有的诺言都没有兑现,那将是行不通的。

我用类似的NPM软件包尝试了第二种解决方案,现在看来可以工作了。

谢谢!