Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无管线的角度5可书签视图选择_Javascript_Html_Angular - Fatal编程技术网

Javascript 无管线的角度5可书签视图选择

Javascript 无管线的角度5可书签视图选择,javascript,html,angular,Javascript,Html,Angular,我正在开发Angular 5应用程序,其中不使用路由(我们有自己的自定义菜单结构和视图选择),但仍然希望有可用于打开特定视图的可书签URL 从技术上来说,这意味着负责菜单和组件选择的组件应该能够 选择菜单项并单击时更改URL参数 当检测到来自书签URL的预选值时,选择想要的视图 我想知道如何才能做到这一点。不幸的是,一旦设置与标准布局略有不同,Angular文档就不会提供太多指针 有人能给我一个关于如何实现这一点的打字脚本示例吗 我最终使用了角度的 我有一些类似的东西——类CustomMen

我正在开发Angular 5应用程序,其中不使用路由(我们有自己的自定义菜单结构和视图选择),但仍然希望有可用于打开特定视图的可书签URL

从技术上来说,这意味着负责菜单和组件选择的组件应该能够

  • 选择菜单项并单击时更改URL参数
  • 当检测到来自书签URL的预选值时,选择想要的视图
我想知道如何才能做到这一点。不幸的是,一旦设置与标准布局略有不同,Angular文档就不会提供太多指针


有人能给我一个关于如何实现这一点的打字脚本示例吗

我最终使用了角度的

我有一些类似的东西——类
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) );   
  } 
}