确保在调用函数之前定义了对象 - angularJS

时间:2016-07-08 17:52:30

标签: javascript angularjs

我目前正在为我的项目实施anno.JS,并且我遇到以下问题:我的控制器在变量中获取对象的配置,该变量在构造函数中无法访问(但是在{ {1}}功能)。但我有一个问题:

定义我的anno以下

$onInit

一般工作,所以定义有效,但不知何故(当我调用this.anno1 = new AnnoModule.Anno(this.annoConfig); 时它说this.anno1.show(),当我查看开发人员工具时,我可以看到Cannot read property 'show' of undefined未定义,所以在调用show函数之前,我会以某种方式确定anno是定义的。

目前我在init中有定义,所以

anno1

然后我有了功能

$onInit(){
    this.anno1 = new AnnoModule.Anno(this.annoConfig);
}

在点击按钮时调用。

我怎样才能确定anno是否定义了?

修改 正如我所说的,当单击按钮时调用showAnno(),现在我尝试在页面加载了一个特殊的get参数时自动调用该函数,并且它可以工作。另外,在开发人员工具中,您看到showAnno(){ this.anno1.show(); } 具有它的值,而在按钮点击之后它没有......我真正不理解的是,我只是调试它,并注意到anno1已定义初始化(如果我单击按钮或不单击按钮),但单击按钮时,anno1再次未定义,而其他方法仍然定义。

Edit2 :问题解决了。不知何故,我在函数this.anno1中遇到了this的问题(这是错误的)。现在我需要拨打showAnno(),现在它可以正常工作。

1 个答案:

答案 0 :(得分:0)

if(this.anno1 != null){
this.anno1.show();
}

但如果它为null,你想要它做什么?等待?