删除通过在 ngOnInit() 上订阅服务创建的空行
Delete empty row created by subscription to service on ngOnInit()
我有一个Material数据table,用户可以自己填空。进入 table 的数据由服务触发,我在 table 组件中用 ngOnInit()
初始化了该服务。
代码:
ngOnInit() {
this._AS.transaction$.subscribe( transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
this.temp.push(this.transaction); // Stop this call on init somehow?
this.dataSource.data = this.temp;
this.ref.detectChanges();
console.log(this.transaction);
}
);
}
问题是:总是有一个空行被调用 this.temp.push(this.transaction)
推送。有没有办法停止第一次调用或类似的东西?
为什么是空的,因为'transaction'是?
那么为什么不直接使用 if 查询呢?
或者您可以在父组件中声明一个 (bool) 变量,并在您第一次点击 ngOnInit
时将其设置为 true
constructor( public parentComponent: ParentComponent) {
}
ngOnInit() {
if(parent.isInitialized) {
this._AS.transaction$.subscribe( transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
if(parent.isInitialized) {
this.temp.push(this.transaction); // Stop this call on init somehow?
} else {
parent.isInitialized = true;
}
this.dataSource.data = this.temp;
this.ref.detectChanges();
console.log(this.transaction);
} );
}
我只是用了另一种方式:
将空交易推入 table 后,我将其弹出,以便 table 再次为空。推送数据现在可以正常工作了。
ngOnInit() {
this._AS.transaction$.subscribe(transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
this.temp.push(this.transaction);
this.dataSource.data = this.temp;
this.ref.detectChanges();
}
);
this.temp = this.dataSource.data.slice();
this.temp.pop();
this.dataSource.data = this.temp;
this.ref.detectChanges();
}
我有一个Material数据table,用户可以自己填空。进入 table 的数据由服务触发,我在 table 组件中用 ngOnInit()
初始化了该服务。
代码:
ngOnInit() {
this._AS.transaction$.subscribe( transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
this.temp.push(this.transaction); // Stop this call on init somehow?
this.dataSource.data = this.temp;
this.ref.detectChanges();
console.log(this.transaction);
}
);
}
问题是:总是有一个空行被调用 this.temp.push(this.transaction)
推送。有没有办法停止第一次调用或类似的东西?
为什么是空的,因为'transaction'是? 那么为什么不直接使用 if 查询呢? 或者您可以在父组件中声明一个 (bool) 变量,并在您第一次点击 ngOnInit
时将其设置为 trueconstructor( public parentComponent: ParentComponent) {
}
ngOnInit() {
if(parent.isInitialized) {
this._AS.transaction$.subscribe( transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
if(parent.isInitialized) {
this.temp.push(this.transaction); // Stop this call on init somehow?
} else {
parent.isInitialized = true;
}
this.dataSource.data = this.temp;
this.ref.detectChanges();
console.log(this.transaction);
} );
}
我只是用了另一种方式: 将空交易推入 table 后,我将其弹出,以便 table 再次为空。推送数据现在可以正常工作了。
ngOnInit() {
this._AS.transaction$.subscribe(transaction => {
this.transaction = transaction;
this.temp = this.dataSource.data.slice();
this.temp.push(this.transaction);
this.dataSource.data = this.temp;
this.ref.detectChanges();
}
);
this.temp = this.dataSource.data.slice();
this.temp.pop();
this.dataSource.data = this.temp;
this.ref.detectChanges();
}