Javascript 你能引用一个';它是在ngOnInit中创建的?
我只是想知道是否有任何方式、形状或形式可以引用在ngOnInit()中创建的函数,或者可以创建某种闭包来引用它 基本上:Javascript 你能引用一个';它是在ngOnInit中创建的?,javascript,angular,typescript,asynchronous,Javascript,Angular,Typescript,Asynchronous,我只是想知道是否有任何方式、形状或形式可以引用在ngOnInit()中创建的函数,或者可以创建某种闭包来引用它 基本上: component(){ somefunc() //be able to call the function that's created in ngOnInit from the component via //click event after the component renders ngOnInit() { function somefunc(){ ..
component(){
somefunc()
//be able to call the function that's created in ngOnInit from the component via
//click event after the component renders
ngOnInit() {
function somefunc(){ ...whatever }
}
}
有没有办法做到这一点 您的伪语法有点混乱 您可以这样调用已创建的函数:
import { Component, OnInit } from '@angular/core';
@Component({
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
showImage = false;
constructor() {
}
ngOnInit(): void {
this.toggleImage();
}
toggleImage(): void {
this.showImage = !this.showImage;
}
}
<button class='btn btn-primary'
(click)='toggleImage()'>
Show Image
</button>
您也可以通过按钮上的单击事件调用它,如下所示:
import { Component, OnInit } from '@angular/core';
@Component({
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
showImage = false;
constructor() {
}
ngOnInit(): void {
this.toggleImage();
}
toggleImage(): void {
this.showImage = !this.showImage;
}
}
<button class='btn btn-primary'
(click)='toggleImage()'>
Show Image
</button>
显示图像
这就是您要问的吗?可以通过将方法分配给
ngOnInit
中的类成员属性来完成。在下面的代码中,我将该方法定义为箭头函数,以确保此
引用方法主体中组件的实例。请参见演示
export class AppComponent implements OnInit {
public onButtonClick: (event: Event) => void; // Member property will refer to the method
ngOnInit() {
let data = "And this comes from the closure!"; // Can be used inside of onButtonClick
// Assign the method to the member property
this.onButtonClick = (event: Event): void => {
console.log("The button was clicked!", data);
...
};
}
}
然后,该方法可以用作事件处理程序:
<button (click)="onButtonClick($event)">Click me!</button>
点击我!
不太可能,除非将函数移到ngOnInitRight之外。那么,在init上声明一个空变量并将其分配给函数怎么样?我试过了,但没有成功,但似乎应该成功。为什么要声明一个空变量来重新声明它为函数呢?只需将其定义为函数…您是在做咖喱还是需要动态函数创建的事情?回答得真棒!!我缺少的关键因素是使用箭头函数来正确绑定this
。很酷。