【问题标题】:How to route in angular using windows.open()如何使用 windows.open() 进行角度路由
【发布时间】:2019-09-23 14:29:19
【问题描述】:

我是 Angular 世界的新手。在我的项目中,我想使用 ag-grid 的上下文菜单中的 windows.open() 在新选项卡中打开一个组件。这些组件在操作中使用 - 一个内置函数ag-grid 上下文菜单。由于在Ag-grid里面,所以不能使用其他的html事件。

我有一个 TestScreen1Component,其中包含一个带有上下文菜单的 ag-grid。单击​​ COnetxt 菜单中的一个项目时,我想打开 新选项卡中的 TestScreen2Component。目前我正在使用 windows.open() 进行路由。这在本地构建中工作正常。但是 在通过提供 base-href 值进行生产构建时,此 url 不起作用并给我 404 错误。

TestScreen1Component.ts

this.gridOptions.getContextMenuItems = params => {
console.log("getContentMenuItems()");
var result = [
{
name: "Always Disabled",
disabled: true,
tooltip: "Sample"
},
"separator",
{
name: "open Screen",
disabled: false,
action: () => {
window.open("/testScreen2", "_blank");}}];
return result;
};

routing-module.ts
const routes: Routes = [{
{ path: "/testScreen2", component: TestScreen2Component }];

【问题讨论】:

  • 在这里试试这个网址Link。这可能会有所帮助。

标签: angular angular-ui-router ag-grid ag-grid-angular


【解决方案1】:

我假设您在开发中使用html5mode 进行路由(启用#)并且它工作得很好,因为它不需要服务器端配置。部署后,该模式(可能)已关闭,在这种情况下,它将需要一些服务器端重写配置。

Apache .htaccess 应该如下所示:

 RewriteEngine on

# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]  
RewriteCond %{REQUEST_FILENAME} -d  
RewriteRule ^ - [L]

# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]  

【讨论】:

  • 我想把它部署在JBOSS服务器上,.htaccess是否适用于JBOSS?
  • 不确定,那台服务器肯定应该有一个等效的,所以在某个地方检查一下。以前从未使用过JBOSS。
猜你喜欢
  • 2016-04-07
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
相关资源
最近更新 更多