Angular2监视对象/数组更改(Angular2 final> = 2.1.1)
栏目: JavaScript · 发布时间: 7年前
内容简介:翻译自:https://stackoverflow.com/questions/40784195/angular2-watch-object-array-changes-angular2-final-2-1-1
我想观看一个对象/数组,可以通过服务或控制器例程进行编辑.我以为Observable可以观看一个对象/数组.
我的实现没有对项目的更改做出反应:
private data : Observable<Array<any>>;
private dataObserver: Observer<Array<any>>;
private sub : Subscription;
private items: <Array<any>>;
ngOnInit() {
this.items = itemService.getItems();
this.data = new Observable<Array<any>>(observer =>{
this.dataObserver = observer;
});
this.data.subscribe(
x => console.log('onNext: %s', x),
e => console.log('onError: %s', e),
() => console.log('onCompleted')
);
this.dataObserver.next(this.items);
}
private start(){
//change values of the array in an interval
let loop = Observable.interval(250)
let i=0;
self.sub = loop.subscribe(() => {
if(self.items[0]){
self.items[0].id= i;
if(i<100) i++;
else i=1;
}
})
}
subsvaltion subsciption对items数组的更改没有反应.它只会在下一个mehtod上触发.另一方面……这对于简单的手表方法来说太麻烦了.
angular-2为我们提供了什么样的变化,就像$scope一样.$watch在angular-1中做了什么?
Angular2提供IterableDiffer(数组)和KeyValueDiffer(对象)以获取有关两个检查之间差异的信息.
NgClass是一个很好的例子 https://github.com/angular/angular/blob/14ee75924b6ae770115f7f260d720efa8bfb576a/modules/%40angular/common/src/directives/ng_class.ts#L122
另见 https://angular.io/docs/ts/latest/api/#!?query=differ
一个例子
// inject a differ implementation
constructor(differs: KeyValueDiffers) {
// store the initial value to compare with
this.differ = differs.find({}).create(null);
}
@Input() data: any;
ngDoCheck() {
var changes = this.differ.diff(this.data); // check for changes
if (changes && this.initialized) {
// do something if changes were found
}
}
翻译自:https://stackoverflow.com/questions/40784195/angular2-watch-object-array-changes-angular2-final-2-1-1
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 初学Vue(四)-- 计算属性,监视方法
- 使用BPF监视你的Kubernetes集群
- c# – 监视系统中的进程启动
- MariaDB 10.2.14 发布,新增磁盘空间监视插件
- 取色软件 ColorWanted 又更新了,新增剪贴板监视支持
- Holy Lance 1.3 发布,Linux 图形化性能监视器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
第二曲线:跨越“S型曲线”的二次增长
[英]查尔斯·汉迪(Charles Handy) / 苗青 / 机械工业出版社 / 2017-6 / 49.00
S型曲线是每个组织和企业在预测未来时一定会参考的工具,一切事物的发展都逃不开S型曲线(“第一曲线”)。 然而,从公司组织、企业治理、市场的变化,到个人职业发展、社会人际关系以及未来的教育与社会价值,多维度地探讨这个世界需要重新以不同的角度来思考问题,不能够总是停留在“第一曲线”的世界。 如果组织和企业能在第一曲线到达巅峰之前,找到带领企业二次腾飞的“第二曲线”,并且第二曲线必须在第一曲......一起来看看 《第二曲线:跨越“S型曲线”的二次增长》 这本书的介绍吧!