Как проложить маршрут под углом с помощью windows.open () - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в мире Angular. В моем проекте я хочу открыть компонент на новой вкладке с помощью windows.open () из контекстного меню ag-grid. Эти компоненты используются внутри действия - встроенной функции вконтекстное меню ag-grid.Поскольку он находится внутри Ag-сетки, другие html-события использовать нельзя.

У меня есть TestScreen1Component, который содержит ag-сетку с контекстным меню. При щелчке элемента в меню 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 }];

1 Ответ

0 голосов
/ 23 сентября 2019

Я предполагаю, что вы использовали 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]  
...