这是用'use strict' javascript编写的,所以它对未声明的变量没有那么宽松。我的代码如下:
'use strict';
angular.module('myApp').factory('factoryName', function(){
var plugins = cordova.require('cordova/plugin_list').metadata;
...
});
我遇到的问题是变量cordova
只在某些时候被定义,这会导致运行时错误。当我的应用在带有cordova的移动的设备上构建和运行时,cordova
显然被定义了,所以它运行良好-但它也在没有cordova的浏览器上运行,这会导致上面的代码块运行时崩溃。
有没有解决这个问题的方法?比如在使用cordova
之前检查它是否被声明了?问题是抛出的错误来自一个未声明的变量,而不是来自阅读一个未定义的属性,所以执行if (cordova) {...}
仍然会失败。或者有没有其他的方法来使用cordova而不像这样引用它?
1条答案
按热度按时间n7taea2i1#
我会执行
if (typeof cordova !== 'undefined')
: