大佬教程收集整理的这篇文章主要介绍了javascript – Angular2’this’未定义,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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.@R_199_10586@lItems = count; },error => console.log(error) ); }
getCount(filters) { var queryParams = JSON.Stringify( { c : 'true',q : filters } ); return this.createQuery(queryParams) .map(res => res.json()) .catch(this.handleError); }
现在当我的ngOnInit()运行时,我收到一个错误:
所以基本上,返回this.createQuery(queryParams)语句中的this将为null.有人知道这有可能吗?
gOnInit():any { this.getCount(new Object(),this.crservice.getCount); // <---- }
由于您引用了对象外部的函数.你可以在它上面使用bind方法:
this.getCount(new Object(),this.crservice.getCount.bind(this.crservicE));
或将其包装成箭头功能:
this.getCount(new Object(),(filters) => { return this.crservice.getCount(filters)); });
第二种方法是首选方法,因为它允许保留类型.有关详细信息,请参阅此页面:
> https://basarat.gitbooks.io/typescript/content/docs/tips/bind.html
以上是大佬教程为你收集整理的javascript – Angular2’this’未定义全部内容,希望文章能够帮你解决javascript – Angular2’this’未定义所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。