首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当尝试访问树菜单项中的$state时,此.$状态未定义

当尝试访问树菜单项中的$state时,此.$状态未定义
EN

Stack Overflow用户
提问于 2017-07-19 18:35:45
回答 1查看 50关注 0票数 0

我正在使用"angular-ui-tree": "^2.22.5"

单击Do something菜单项时出错。

代码语言:javascript
复制
TypeError: this.$state is undefined

如何将对$state的引用传递给我的函数。

MyController:

代码语言:javascript
复制
export class MyController {

  public treeMenuItems = [
    {
      'handleClick': this.doSomething,
      'name': 'Do something'
    }
  ];
  public treeMenuPopover = {
    'items': this.treeMenuItems,
    'placement': 'bottom',
    'title': 'Actions'
  };

  constructor(public $state: ng.ui.IStateService) {}

  public doSomething() {
    this.$state.go('my.state');
  }
}
MyController.$inject = ['$state'];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 18:47:05

你可以在Javascript here中读到this是如何工作的。

对于您的代码,请尝试

代码语言:javascript
复制
export class MyController {

  public treeMenuItems = [
    {
      'handleClick': this.doSomething,
      'name': 'Do something'
    }
  ];
  public treeMenuPopover = {
    'items': this.treeMenuItems,
    'placement': 'bottom',
    'title': 'Actions'
  };

  constructor(public $state: ng.ui.IStateService) {
    this.doSomeThing = this.doSomething.bind(this);
  }

  doSomething() {
    this.$state.go('my.state');
  }
}
MyController.$inject = ['$state'];

这样您就绑定了正确的This函数doSomething。因此,无论何时调用它,它的this都是一致的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45187996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档