我希望有这样的东西:
ngOnInit(){
...
function test() {
...
}
}
function()
{
test();
}
如果可能,那怎么办?
答案 0 :(得分:2)
您在ngOnInit
中定义的函数需要存储在类实例中的某个位置,以便再次调用它。这意味着您需要一个属性来存储它。
class Component {
private fn: Function; // or a better type if you know it
}
现在,在ngOnInit
内,为此变量分配一个函数。您可能希望使用this
的箭头函数成为您(可能)期望的函数。
class Component {
private fn: Function; // or a better type if you know it
public ngOnInit(): void {
this.fn = () => {} // create it here
}
}
发生这种情况后,您可以随时随地调用fn
函数。
this.fn()
但要小心,如果在OnInit
钩子开始之前尝试执行上面的行,则会出现运行时错误。例如,如果您在fn
挂钩中使用OnChanges
(将在OnInit
挂钩之前调用一次),则需要小心:
if (this.fn) {
this.fn()
}
答案 1 :(得分:1)
我不确定你为什么要做那样的事情?但这就是它的工作原理:
在组件内部,声明一个变量
func : any;
然后在ngOnInit中,
ngOnInit(){
...
func = function test() {
...
}
}
然后在同一个组件中使用另一个函数调用该函数,
function someOtherFunction()
{
this.func();
}