angular6 this指向问题

各位同学,有个问题请教下。我们目前项目 技术栈是 ng6+ts,现在遇到的问题是,在使用ztree插件时,出现了问题:

ztree配置

  /**
   * ztree 配置
   */
      setting: any = {
              data:{
                    simpleData:{
                        enable:true
                    },
                    key:{
                        name:'des'
                    }
                },
        check: {
            enable: true
        },
        view: {
            showLine: true,
            showIcon: false
        },
        callback: {
            onClick: this.onClick,
            onCheck: function (e, treeId, treeNode) {
                console.info(treeNode);
            }
        }
    }
    private onClick(event, treeId, treeNode, clickFlag){
        this.httpcl.get(`http:localhost:8080/shinyview/draft/ColumValueDraft/${treeId}`,{}).subscribe((res) => {console.log(res)})

###constructor配置###

 constructor(private appService: AppService,
                            private http: HttpService, 
                            public httpcl:HttpClient,
                            private toastService: ToastService) {
    }
在ztree的setting中callback的onClick方法调用this.onClick函数,当点击ztree树节点时,将treeId传至后台,获取相关数据。但是在onClick方法中,this不指向当前类,而是指向如下:

图片描述
无法调用httpClient,请问下有没有大神遇到过类似问题?用 new 的方法也没有解决

阅读 4.2k
2 个回答

onClick方法引用的时候,加上bind(this),具体代码如下:

 callback: {
            onClick: this.onClick.bind(this),
            onCheck: function (e, treeId, treeNode) {
                console.info(treeNode);
            }
        }
新手上路,请多包涵

请问,,问题解决了吗??我也遇到了这个问题。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进