Javascript 无管线的角度5可书签视图选择
我正在开发Angular 5应用程序,其中不使用路由(我们有自己的自定义菜单结构和视图选择),但仍然希望有可用于打开特定视图的可书签URL 从技术上来说,这意味着负责菜单和组件选择的组件应该能够Javascript 无管线的角度5可书签视图选择,javascript,html,angular,Javascript,Html,Angular,我正在开发Angular 5应用程序,其中不使用路由(我们有自己的自定义菜单结构和视图选择),但仍然希望有可用于打开特定视图的可书签URL 从技术上来说,这意味着负责菜单和组件选择的组件应该能够 选择菜单项并单击时更改URL参数 当检测到来自书签URL的预选值时,选择想要的视图 我想知道如何才能做到这一点。不幸的是,一旦设置与标准布局略有不同,Angular文档就不会提供太多指针 有人能给我一个关于如何实现这一点的打字脚本示例吗 我最终使用了角度的 我有一些类似的东西——类CustomMen
- 选择菜单项并单击时更改URL参数
- 当检测到来自书签URL的预选值时,选择想要的视图
有人能给我一个关于如何实现这一点的打字脚本示例吗 我最终使用了角度的 我有一些类似的东西——类
CustomMenuService
负责管理菜单,它使用Location
API在散列之后存储选择,散列可以被书签
import { Injectable } from '@angular/core';
import { Location } from '@angular/common';
@Injectable()
export class CustomMenuService {
constructor(private location: Location) {
this.restoreCurrentMenuSelection();
}
private restoreCurrentMenuSelection() {
const pathWithHash = this.location.path(true);
if (pathWithHash.indexOf('#') >= 0) {
const hashPart = fullPathWithHash.split('#', 2)[1];
// ...
// parse hashPart and get the wanted view (menu item selection)
// ...
}
}
public onMenuItemSelected() {
const selectedMenuItem = // ... encode the selected menu item as string
this.location.go( encodeURI('#' + selectedMenuItem) );
}
}