angular - 从另一个函数的 ngOnInit 访问本地变量
问题描述
我是 Angular 和 TS 的新手。我正在尝试从外部访问 ngOnInit 中的本地 var,但我不知道如何正确执行。我有一个名为 BlocklyComponent 的组件,我在其中创建了 var。
export class BlocklyComponent implements OnInit {
primaryWorkspace: Blockly.WorkspaceSvg;
constructor(private sanitizer: DomSanitizer) {
this.updateXML = this.updateXML.bind(this);
}
ngOnInit() {
var primaryWorkspace = Blockly.inject('primaryDiv',{....} as Blockly.BlocklyOptions);
在 NgOnInit 函数内部它可以正常工作,我可以毫无问题地看到该对象。但是,当我添加 addchangeListener 以在发生事件时读取时,我无法从 ngOnInit 外部的新函数访问该本地 var。
primaryWorkspace.addChangeListener(this.updateXML); //addChangeListener is special for Blockly library
}
updateXML(primaryEvent )
{
if (primaryEvent.isUiEvent)
{
return; //Do not clone ui events
};
var xml = Blockly.Xml.workspaceToDom(primaryWorkspace); //XML machine. Blockly is a library.
console.log(xml);
}
我试图将这个(this.primaryWorkspace)添加到调用中,但它使用的是属性而不是本地变量。我知道可以在 ngOnInit 内部创建函数并且它可以工作,但我需要在外部创建 updateXML。非常感谢
解决方案
最后,这是一个简单的问题。我通过将 var 声明为 this.primaryWorkspace 而不是将其声明为 VAR 自己解决了这个问题。
推荐阅读
- swift - 从视图层次结构中查找和隐藏视图
- python - 将小数格式化为百分比并截断其余部分
- php - 如果某天为空,则创建最近 30 天的图表
- git - docker:git clone 结果不在本地卷中,args 没有扩展
- arrays - 在 Julia 中将数组导出到 CSV 文件
- java - Prometheus 错误:收集器已注册,提供名称:http_client_requests_count
- php - PHP 无法从 curl 调用中取回数据
- javascript - 将元素宽度调整为父级中的滚动条
- neural-network - 用于几何图元提取和定位的神经网络
- css - CSS : :not(s) 选择器作为父选择器 + :hover 类误解