【问题标题】:AngularJS load directive before dataAngularJS 在数据之前加载指令
【发布时间】:2018-12-15 23:10:15
【问题描述】:

我对 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 一点一点地获得新元素,我的表格应该每次都显示一个新行,但实际上它在渲染 TR 之前等待 foreach 结束。

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

有没有办法预加载模板,这样我就可以在所有承诺完成之前看到表格中的行?还是我应该采取不同的做法?

提前谢谢你,

【问题讨论】:

标签: angularjs


【解决方案1】:

关于第一个解决方案(ng-if),我前段时间想过但即使列表不为空(至少一个元素),也不意味着html模板在加载时加载最后。你可以有 35 个元素,如果没有完成所有的承诺,它就不会起作用。

我用类似的 NPM 包尝试了第二个解决方案,现在它似乎可以工作了。

谢谢!

【讨论】:

  • 你应该在 cmets 中回答而不是创建答案 ;)
  • 不错。通过添加一个预构建步骤,您可以在应用程序的脚本中编写它应该使用的模板,您可以避免无用的 ajax 请求,并且应用程序的加载速度更快。
猜你喜欢
  • 2015-02-17
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多