です:Angular2「これは」私はこのようなコード持っている未定義
export class CRListComponent extends ListComponent<CR> implements OnInit {
constructor(
private router: Router,
private crService: CRService) {
super();
}
ngOnInit():any {
this.getCount(new Object(), this.crService.getCount);
}
ListComponentコードは、この
@Component({})
export abstract class ListComponent<T extends Listable> {
protected getCount(event: any, countFunction: Function){
let filters = this.parseFilters(event.filters);
countFunction(filters)
.subscribe(
count => {
this.totalItems = count;
},
error => console.log(error)
);
}
され、CRServiceから適切なサービスコードフラグメントはこれです:
をgetCount(filters) {
var queryParams = JSON.stringify(
{
c : 'true',
q : filters
}
);
return this.createQuery(queryParams)
.map(res => res.json())
.catch(this.handleError);
}
私のngOnInit()
が実行されると、エラーが表示されます。
angular2.dev.js:23925 EXCEPTION: TypeError: Cannot read property 'createQuery' of undefined in [null]
ORIGINAL EXCEPTION: TypeError: Cannot read property 'createQuery' of undefined
したがって、基本的にreturn this.createQuery(queryParams)
ステートメントのthis
はnullになります。誰が考えているのですか?
'this.createQuery'はなぜ存在すると思いますか? –
あなたの2つのクラスが閉じ括弧を欠いているのは "普通"ですか? –
私は不必要な部分を省略しました。そうでない場合、コードは構文的に正しいものです。 :)問題は '.createQuery'ではなく、' this'自体で問題になります。 – Sleeper9