将相本无种,男儿当自强。这篇文章主要讲述在Angular5 app中的leaflet弹出窗口中调用zone.run相关的知识,希望能为你提供帮助。
我们有一个带有嵌入式传单映射的angular5应用程序。此映射将弹出窗口绑定到各个点,然后打开详细信息组件。这个复杂的过程在chrome和firefox中运行良好,但在Internet Explorer中出现了一个神秘的“语法错误”。您可以在以下位置查看该应用:http://ptappdev.gisdata.mn.gov/ptappt
单击任何地图标记,然后单击“查看详细信息”。
如果它是javascript嵌套引号的问题我尝试了一系列的转义模式。仍然没有运气。生成此弹出窗口的代码是:
layer.bindPopup('<
p>
' + feature.properties[Object.keys(feature.properties)[0]] + '<
br />
<
a target="_blank" href="' + feature.properties['park_home_page_url']
+ '">
open website<
/a>
<
br />
<
a href="javascript:void(0);
" '
+ 'OnClick = "'
//+ 'alert(&
apos;
test&
apos;
);
'
+ 'window[&
apos;
angularComponentRef&
apos;
].zone.run(() =>
{window[&
apos;
angularComponentRef&
apos;
].component.showResultDtlViaMapTip('
+ '&
quot;
' + feature.properties['name'] + '&
quot;
,'
+ '&
quot;
' + feature.properties['id'] + '&
quot;
,'
+ '&
quot;
' + feature.properties['park_admin_id'] + '&
quot;
'
+ ');
})'
+ '" style="cursor: pointer;
cursor: hand;
">
view details<
/a>
<
/p>
');
// 1 initial load
}
}).addTo(this.map)//.on('click', this.onMarkerClick);
生成的html是:
<
a href="javascript:void(0);
" onclick="window['angularComponentRef'].zone.run(() =>
{window['angularComponentRef'].component.showResultDtlViaMapTip(&
quot;
Upper Sioux Agency State Park&
quot;
,&
quot;
530&
quot;
,&
quot;
spk00277&
quot;
);
})" style="cursor: pointer;
cursor: hand;
">
view details<
/a>
关于这是带语法的语法错误还是嵌套引号问题的任何想法。或者完全是其他的东西?如有任何帮助,我将不胜感激。
答案在ES2015中引入了箭头功能,在Internet Explorer中引入了are not supported。
您的表达式看起来与使用普通的
function
兼容,因此只需用正常的箭头替换箭头函数就可以解决语法错误,同时保留功能。另一答案【在Angular5 app中的leaflet弹出窗口中调用zone.run】感谢您的修复建议。作为参考,这里是新的功能重写代码,不使用箭头功能:
<
span onclick="window['angularComponentRef'].zone.run(function() {return window['angularComponentRef'].component.showResultDtlViaMapTip('Hill-Annex Mine State Park','210','spk00176')});
">
view details<
/span>
推荐阅读
- Pool.apply_async()。get()导致_thread.lock pickle错误
- 5个用于Cookie操作的最佳JavaScript库
- 7个适用于PHP的最佳Curl包装器库
- 7个最好的PHP Http客户端库
- 7个最佳360°(矩形)图像查看器JavaScript插件
- 5个最佳开放源代码HTML渲染库,可将HTML5/CSS3用作C#的用户界面
- 7个最好的开源终端仿真器
- 5个最佳开源PHP代码混淆器库
- 十大最佳Android评分栏小部件