我对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模板是在所有承诺之后加载的。
有没有一种方法可以预加载模板,以便在完成所有承诺之前可以看到表中的行?还是我应该做些不同的事情?
先谢谢您
答案 0 :(得分:1)
关于第一个解决方案(ng-if),我前段时间曾考虑过,但是即使列表不为空(至少一个元素),也并不意味着html模板会在加载时加载最后。您可以有35个元素,如果所有的诺言都没有兑现,那将是行不通的。
我用类似的NPM软件包尝试了第二种解决方案,现在看来可以工作了。
谢谢!