我想要这样的东西:
ngOnInit(){
...
function test() {
...
}
}
function()
{
test();
}如果这是可能的,那么如何实现呢?
发布于 2017-09-03 16:40:57
您在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钩子生效之前执行上面的代码行,您将得到一个运行时错误。例如,如果您在OnChanges钩子中使用fn (将在OnInit钩子之前调用一次),则需要小心:
if (this.fn) {
this.fn()
}发布于 2017-09-03 15:03:07
我不知道你为什么要做这样的事情?但这就是它的工作原理:
在组件中,声明一个变量
func : any;然后在ngOnInit内部,
ngOnInit(){
...
func = function test() {
...
}
}然后在同一组件中调用另一个函数内的函数,
function someOtherFunction()
{
this.func();
}https://stackoverflow.com/questions/46020858
复制相似问题