gpt4 book ai didi

javascript - 当尝试访问树形菜单项单击中的 $state 时,this.$state 未定义

转载 作者:行者123 更新时间:2023-12-03 03:50:29 26 4
gpt4 key购买 nike

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

点击执行某事菜单项时出错..

TypeError: this.$state is undefined

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

我的 Controller :

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'];

最佳答案

您可以了解 this 在 Javascript 中的工作原理 here .

对于你的代码尝试

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'];

这样您就可以正确绑定(bind)函数doSomething。因此,每当调用它时,它的 this 都会保持一致。

关于javascript - 当尝试访问树形菜单项单击中的 $state 时,this.$state 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45187996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com