搜索计算器这个问题总是给我Angular.js解决方案。
你会怎么做这Anuglar镖?
这是我想有一个函数运行后角镖的NG-重复指令已完成渲染的元素。
编辑:
事实证明,知道何时NG-重复完成枚举不意味着相应的DOM元素已经被附加到文档。
我想我的预期的问题是如何确定何时吴重复列举的所有元素连接到DOM树,可以通过选择查询
EDIT2
<div ng-repeat='fruit in fruits'>
<li class="fruit">{{fruit}}</li>
</div>
querySelectorAll('.fruit'); // should return all <li> element created by ng-repeat
// the trick is knowing when and where to call querySelectorAll
谢谢
我试过{{foo($last)}}
它并没有为我工作的。
这个例子使用MutationObserver
于收到通知添加的元素。 我想它和它的工作。
<!DOCTYPE html>
<html>
<head>
<script src="packages/shadow_dom/shadow_dom.debug.js"></script>
</head>
<body ng-cloak>
<ul somefruits>
<li ng-repeat='fruit in ctrl.fruits track by $index'
class="fruit" ng-class="{'ng-last': $last}">{{fruit}}</li>
</ul>
<script type="application/dart" src="index.dart"></script>
<script type="text/javascript" src="packages/browser/dart.js"></script>
</body>
</html>
library angular_default_header.main;
import 'dart:html';
import 'package:angular/angular.dart';
@NgController(selector: '[somefruits]', publishAs: 'ctrl')
class Fruits {
Fruits(){
print('fruits created');
}
List fruits = ['Apple', 'Banana', 'Orange', 'Kiwi'];
}
class MyAppModule extends Module {
MyAppModule() {
type(Fruits);
}
}
void mutationCallback(List<MutationRecord> mutations, MutationObserver observer) {
mutations.forEach((mr) {
mr.addedNodes.forEach((Node n) {
if(n is Element) {
if(n.classes.contains('ng-last')) {
print('last added');
observer.disconnect();
n.style.border = '1px solid red';
}
}
});
});
}
main() {
print('main');
var ul = document.querySelector('ul');
new MutationObserver(mutationCallback).observe(ul, childList: true);
ngBootstrap(module: new MyAppModule());
}
见angular.NgRepeatDirective
`$last` [bool] true if the repeated element is last in the iterator.
然而,除非您的列表是相当大的,不应该大部分元素来在大致相同的时间绘制? 也许你可以观看更改集合。
看看这个问题的GitHub( https://github.com/angular/angular.dart/issues/843了解更多信息)。
它闻起来像我的错误,但我不知道。
作为一种解决办法,你可以的角度以外安排未来。 有一个关于这个在上面提到的问题的详细信息。