搜索这个问题的堆栈溢出总是给我Angular.js的解决方案。
你怎么用安格拉尔飞镖做这件事?
也就是说,我希望在角镖中的ng-重复指令完成元素呈现之后,运行一个函数。
编辑:
结果表明,知道ng重复何时完成枚举并不意味着适当的dom元素已经附加到文档中。
我想我要问的问题是如何确定ng-重复枚举的所有元素何时被附加到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
谢谢
发布于 2014-03-30 12:15:03
我试过{{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());
}
发布于 2014-03-31 01:15:24
`$last` [bool] true if the repeated element is last in the iterator.
但是,除非您的列表相当大,否则大多数元素不是在大致相同的时间绘制吗?也许您可以通过观看集合来进行更改。
发布于 2014-04-03 18:34:47
有关更多信息,请查看此GitHub问题(https://github.com/angular/angular.dart/issues/843)。
我闻起来像虫子,但我不确定。
作为一种解决办法,你可以在角度之外安排一个未来。在上面提到的问题中有更多关于这方面的信息。
https://stackoverflow.com/questions/22748168
复制相似问题