Angular 以角度显示在一段时间内生成的选定错误消息
我想在消息生成时显示消息。我只想显示我创建的错误数组中选定的错误消息。我正在使用Angular 以角度显示在一段时间内生成的选定错误消息,angular,angular-services,Angular,Angular Services,我想在消息生成时显示消息。我只想显示我创建的错误数组中选定的错误消息。我正在使用array.filter方法来过滤错误消息,但这不起作用。它只是显示数组中的所有元素 以下是服务代码: error: any[] = []; addError() { // error gets generated over a period of time this.error.push({ msg: 'A', statusText: 'a', status: 25 }); this.er
array.filter
方法来过滤错误消息,但这不起作用。它只是显示数组中的所有元素
以下是服务代码:
error: any[] = [];
addError() {
// error gets generated over a period of time
this.error.push({ msg: 'A', statusText: 'a', status: 25 });
this.error.push({ msg: 'B', statusText: 'b', status: 35 });
this.error.push({ msg: 'C', statusText: 'c', status: 45 });
this.error.push({ msg: 'D', statusText: 'd', status: 55 });
this.error.push({ msg: 'E', statusText: 'e', status: 65 });
this.error.push({ msg: 'F', statusText: 'f', status: 75 });
this.error = this.error.filter(err => err.status > 45);
}
getErrors(): any[] {
console.log(`in the get methog ${JSON.stringify(this.error)}`);
return this.error;
}
下面是显示错误消息的父组件
:
data: any[];
constructor(private _error: ErrorService) {}
ngOnInit() {
this.data = this._error.getErrors();
}
下面是生成错误的子组件
:
addError() {
this._info.addInfo();
}
注意:此addError方法在按钮的单击事件中调用
这里的问题是:即使我正在过滤错误数组,我也可以看到所有的错误消息(A-F)
,而我应该只看到D、E和F
我哪里做错了??我是否需要使用observable来实现期望的结果,或者我可以通过对上述代码进行一些修改来实现
这是链接到该问题与参考文献有关
父组件的
,ngOnInit
保存数据
数组的引用错误
- 当我们执行array.filter()时,
将保存一个新引用,但不会在error
父组件中更新
过滤器错误
属性读取器添加到错误服务
@Injectable({
providedIn: 'root'
})
export class ErrorService {
error: any[] = [];
addError() {
this.error.push({ msg: 'A', statusText: 'a', status: 25 });
this.error.push({ msg: 'B', statusText: 'b', status: 35 });
this.error.push({ msg: 'C', statusText: 'c', status: 45 });
this.error.push({ msg: 'D', statusText: 'd', status: 55 });
this.error.push({ msg: 'E', statusText: 'e', status: 65 });
this.error.push({ msg: 'F', statusText: 'f', status: 75 });
}
get filteredErrors() {
return this.error.filter(err => err.status > 45);
}
}
第2步:读取filteredErrors
以迭代过滤错误。以下是父组件的详细信息
@Component({
selector: 'app-parent',
template: `<p *ngFor="let error of errors">
First Name: {{ error.msg }} Last Name: {{ error.statusText }}
</p>
<app-child></app-child>`
})
export class ParentComponent {
constructor(public _error: ErrorService) {}
get errors() {
return this._error.filteredErrors || [];
}
}
@组件({
选择器:“应用程序父级”,
模板:`
名字:{{error.msg}}姓氏:{{error.statusText}
代码链接。在geterror中编写过滤代码method@MukulSharma,同样的结果:(