我正在处理一个涉及AngularJS的项目,我遇到了一个似乎无法解决的错误。毋庸置疑,我是一个新手,希望你们能帮助我解决这个问题,因为我已经在这个问题上花了很长时间。
这是我的代码
WatchboxCtrl.js https://gist.github.com/anonymous/0c68fbd87574d61377b54981a09f66e5
这就是发生错误的地方
FleetMapCtrl.js
https://gist.github.com/anonymous/9df7bc7c54a09c91dd60cd009ba9ff91
最终,我想要做的是,让应用程序显示多个警报,如果我点击其中一个警报,应用程序应自动放大到发出警报的单位。以前,我将“id”作为字符串,它工作正常;但是,我后来将“id”更改为整数,缩放功能不再起作用。每次我点击警报时,控制台都会给我这个错误:
<head>
它显示了fleetmapCtrl.js第320行的错误,但我无法弄清楚/理解为什么它不起作用。
请帮忙。我到处搜索以修复它,但我似乎无法解决它。我很绝望。感谢
答案 0 :(得分:0)
您没有在您的小方法中检查undefined
。
function isUndefinedOrNull(val) {
if (val === "" || val === null || val === "undefined") {
return true;
}
}
您正在检查字符串"undefined"
而不是undefined
。
console.log(undefined==="undefined"); //false
所以它应该没有引号
function isUndefinedOrNull(val) {
return val === "" || val === null || val === undefined;
}
现在为什么它未定义?您需要跟踪调用flyTo的位置并找出手表未返回新值的原因。
答案 1 :(得分:0)
正如你所说,newval不再是一个字符串,newVal中没有zoomlevel。 当您访问newVal.zoomLevel时,它将仅提供undefined。 我认为下面这行有问题。我无法看到你将zoomLevel分配给该对象的任何地方。如果我错过了同样的话,请原谅。 $ scope.markers = getMarkers($ scope.mapData [newVal.zoomLevel.toString()]);