angular - 根据剑道菜单中的服务数据在新选项卡中打开 url
问题描述
我搜索了很多帖子,但没有任何适用于我的场景的解决方案。我是使用通过 sql 构建的数组动态填充剑道菜单。
<kendo-menu [items]="items"
[vertical]="true"
style="display:inline-block;">
</kendo-menu>
这是我正在关注的示例:
https://www.telerik.com/kendo-angular-ui/components/menus/menu/vertical/
下面是 items 数组的结构:
export const items: any[] = [
{
text: 'Reportingd',
items: [{ text: 'Dash', url: "https://www.google.com" }, {
text: 'Realtime',
items: [{ text: 'DesktopNew', url: "https://www.telerik.com" }, { text: 'laptop', url: "https://www.msn.com" }]
}]
},
{
text: 'Other Reporting',
items: [{ text: 'Training', url: "https://www.msn.com" }, { text: 'UserManual', url: "https://www.msn.com" }, { text: 'Guide',
items: }]
},
{
text: 'Tools',
items:[{ text: 'Training', url: "https://www.msn.com" }]
}];
但是,单击菜单/子菜单会在同一窗口中打开 url。我想在不同的窗口或新标签中打开。HTML<a>
标记在这里不起作用。请建议
<a href="https://www.thesitewizard.com/" target="_blank">thesitewizard.com</a>
解决方案
为剑道菜单编写选择事件,如下所示。
<kendo-menu [items]="items" (select)="onSelect($event)"></kendo-menu>
之后在 onSelect 方法中使用 window.open 方法,如下所示。
public onSelect({ item }): void {
if (!item.items) {
window.open([item.url], "_blank");
}
}
推荐阅读
- javascript - FullCalendar 事件颜色
- mysql - MySQL:根据条件使用带有变量的 WHERE IN () 选择查询
- javascript - 浏览器调整大小时刷新/重新加载页面 - 排除移动设备
- flutter - 在 Intellij 中没有调试选项
- c# - 启用 .net 本机编译选项的 UWP 编译错误:内部编译器错误:指定的转换无效
- jquery - jQuery 在提交时从 type="file" 输入框中读取字节 []
- php - MAMP - SQLSTATE[HY000] [2002] 连接被拒绝
- monitoring - 使用 Prometheus 和 Grafana 将秒转换为 HH:MM:SS
- javascript - 将修改后的 json 从视图发送到控制器
- c# - 启用 Google 身份验证:请求中的重定向 URI 与授权给 OAuth 客户端的不匹配