Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 按值筛选的对象的angular2 typescript数组_Json_Angular_Typescript - Fatal编程技术网

Json 按值筛选的对象的angular2 typescript数组

Json 按值筛选的对象的angular2 typescript数组,json,angular,typescript,Json,Angular,Typescript,我有一个从JSON文件获取数据的数组。我能够将一组对象存储到我的任务[]中。现在我想按状态检索数据(“已提交”或“已解决”等)。我尝试了很多方法,但都没有成功。请帮帮我 数据:[{ taskname:'Test1', taskId:'1', 状态:“已提交” }, { taskname:'Test2', taskId:'2', 状态:“已解决” }, { taskname:'Test3', taskId:'4', 状态:“已提交” }, { taskname:'Test4', taskId:'5

我有一个从JSON文件获取数据的数组。我能够将一组对象存储到我的
任务[]
中。现在我想按状态检索数据(“已提交”或“已解决”等)。我尝试了很多方法,但都没有成功。请帮帮我

数据:[{
taskname:'Test1',
taskId:'1',
状态:“已提交”
}, {
taskname:'Test2',
taskId:'2',
状态:“已解决”
}, {
taskname:'Test3',
taskId:'4',
状态:“已提交”
}, {
taskname:'Test4',
taskId:'5',
状态:“正在进行”
}, {
taskname:'Test5',
taskId:'6',
状态:“已解决”
}, {
taskname:'Test6',
taskId:'7',
状态:“已提交”
}
}]
Task.ts

导出接口任务{
taskId:任何;
任务名称:任意;
状态:任何;
}
taskService.ts

getTask(){
返回此.http.get(“../app/common/task.json”)
.toPromise()
.然后(res=>res.json().data)
。然后(数据=>{
返回数据;
});
}
任务组件

导出类TaskComponent实现OnInit{
任务列表:任务[];
数据源:任务[];
分类列表:任务[];
恩戈尼尼特(){
this.taskService.getTask().then(files=>this.files=files);
this.vecService.getData().then(taskList=>{
this.datasource=任务列表;
this.taskList=this.datasource;//将数据存储到我的任务列表数组中
});
}
}
这是我尝试按状态筛选的内容:

 this.sortedList = this.taskList.filter(
      task => task.status ==='Submitted');
在错误下方显示错误:

无法读取未定义的属性“筛选器”


这是因为Promissions/HTTP请求是异步的。您需要在承诺的回调中添加筛选器,如果将其放在任务列表之外,则将未定义筛选器,因此无法应用筛选器

this.vecService.getData().then(taskList => {
        this.datasource = taskList;
        this.taskList = this.datasource;// Storing data into my task list array
        this.sortedList = this.taskList.filter(
        task => task.status ==='Submitted');

    });

谢谢Sajeetharan,因为两个小时以来他一直在尝试收回承诺。非常感谢。可能是副本