不能用 ngOnChanges 侦测query结果集的变化, 要用 observable subscribe
来源:互联网 发布:北京海量数据离职 编辑:程序博客网 时间:2024/05/21 06:30
http://www.open-open.com/lib/view/open1461113267205.html
在 AngularJS 1 里,如果想要监听一个数据的变化,需要设置一个 $scope.$watch , 然后在每次digest cycle里手动判断数据变了没。在 angular2 里, ngOnChanges 钩子把这个过程变得异常简单。只要你在组件里定义了 ngOnChanges 方法,在输入数据发生变化时该方法就会被自动调用。这超屌的!
不过需要注意的是, ngOnChanges 当且仅当组件输入数据变化时被调用,“输入数据”指的是通过 @Input 装饰器显式指定的那些数据。如果是 @ViewChildren , @ContentChildren 的结果集增加/删除了数据, ngOnChanges 是不会被调用的。
如果你希望在query结果集变化时收到通知,那不能用 ngOnChanges 。应该通过query结果集的 changes 属性订阅其内置的observable。只要你在正确的钩子里订阅成功了(不是构造器里),当结果集变化时,你就会收到通知。
举例,代码应该是这个样子的:
通过 changes 订阅observable,监听query结果集变化(推荐)
@Component({ selector: 'my-list' })export class MyList implements AfterContentInit { @ContentChildren(ListItem) items: QueryList<ListItem>; ngAfterContentInit() { this.items.changes.subscribe(() => { // will be called every time an item is added/removed }); }}
阅读全文
0 0
- 不能用 ngOnChanges 侦测query结果集的变化, 要用 observable subscribe
- Angular4_ Observable和subscribe
- CacheLookup有变化时不能用
- vmstat :侦测系统资源变化
- vmstat :侦测系统资源变化
- RxSwift Observable(观察量) subscribe(订阅)
- 不断变化的mongoDB结果集
- 不能用的文件名
- 求一个正整数N的开方,要求不能用库函数sqrt(),结果的精度在0.001
- 求一个正整数N的开方,要求不能用库函数sqrt(),结果的精度在0.001
- ThinkPHP-TPT360 文章分页不随搜索结果变化的问题
- AUTO CAD安装有了一段时间结果不能用了?
- nmake 不能用的解决方法
- cmd不能用的解决方法
- GoAgent不能用的解决方法
- GoAgent不能用的解决方法
- goagent不能用的问题
- hierarchyviewer不能用的解决办法
- SpringMVC-使用converter转换器解决后台接收Date格式数据时The request sent by the client was syntactically incorrect ()
- HttpClient发送Post请求(二)
- DIRECTORY_SEPARATOR
- 统计原理笔记 Notes for Statistics I
- 我的服务器开发之路-centos中crontab定时器的使用
- 不能用 ngOnChanges 侦测query结果集的变化, 要用 observable subscribe
- 初探ansible
- 使用font-size:0 来去掉inline-block元素之间的空隙
- 关于sitemesh装饰器的使用方式
- [leetcode]78. Subsets(Java)
- 22题:栈的压入、弹出顺序
- windows10IoT+树莓派官方摄像头(Pi Camara) == 暂时无解
- Java String 提取 http 网址
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)