dispatcher.dispatch("activityId", "ctxId", 1l,);
似乎在funciton getTests(id)中无法访问TESTS, 但是如果在getTests函数中返回testsPromise,我会收到所有数据,因此可以使用testsPromise。为什么呢?
答案 0 :(得分:5)
您需要初始化项目:
var items: Test[] = [];
答案 1 :(得分:2)
Test
是这样的界面吗?
interface Test {
id: number;
name: string;
fid: number;
}
如果是这样,您必须在循环开始之前初始化items
数组(注意使用let
):
getTests(id: number) {
let items: Test[] = [];
// ...
}
然后,确保TESTS
(无论声明在哪里)在函数中可用:
getTests(id: number) {
console.log(TESTS); // do you see this output?
// ...
}
使用上面的设置,您的代码对我来说很好。
奖励:如果您想进一步细化,可以在一行中重写您的功能:
getTests(id: number): Test[] {
return TESTS.filter((oneTest: Test) => oneTest.fid === id);
}