zoukankan      html  css  js  c++  java
  • angular2----router

    参考地址:http://www.cnblogs.com/keatkeat/p/5810987.html

    先来谈谈步骤好了

    1.ng new ng2  //ng2是项目名

    2.cnpm install 

    3.ng serve

    4.这时候项目里有个app文件夹,里面放所有的页面和ts、css文件

    5.实现目标是:首页加载为login页面,login页面点击按钮再跳转到home页面

    1)、使用ng g component home 和 ng g component login 新建两个页面

    建完,会自动在中添加这两个页面的引入

     2)、新建一个app.router.ts文件

    这是用来放置所有页面导航的文件,如图

    再将这个页面引入app.module.ts中,

     

    3)、在app.component.html 

     

    RouterOutlet 该指令()用来标记出路由器该在哪里显示视图。很显然我们要将我们需要显示的页面在app.component.html中显示出来

    那么按照需求,首先显示的应该是login页才对,如下,默认跳转到login页

     4)然后在我们在login页上添加一个按钮,叫to home page 点击实现跳转到home页面,那么要怎么做呢,目前我使用的是两种方法

    第一种:

    1.使用 routerLink

    1)、不带参数

    <button [routerLink]="['/home']">to Home page</button>
    或者

    <button routerLink="/home">to Home page</button>

    2)、带参数,

    1、路径上带参数:相应的router路径也要添加上相关参数

    <button [routerLink]="['/home',14]">to Home page</button>
     或者
    <button routerLink="/home/15">to Home page</button>

    2.app.router.ts不添加/:id

    <button [routerLink]="['/home',{id:3}]">to Home page</button>
    也是可行的 但是使用 routerLink="/home/{id:3}" 则是跳转失败的
    <button routerLink="/home/{id:3}">to Home page</button>

    第二种就是用 (click)="home()" 的方式跳转辣

    1)、不带参数

    public home():void{
      this.router.navigate(['/home']);
    }
     
    2)、带参数
     
    public home():void{
      this.router.navigate(['/home',14]);
    }
     
    或者
     
    public home():void{
      this.router.navigate(['/home',{id:14}]);
    }
     
     

    3. 获取 params ( params 是 Matrix Url 和 :Id , 要拿 search 的话用 queryParams )

    复制代码
    class TestComponent implements OnInit, OnDestroy {
        //home/xx
        private sub : Subscription;
        constructor(private route: ActivatedRoute) { }    
        ngOnInit()
        {
            //监听变化
            this.sub = this.route.params.subscribe(params => {
                console.log(params); //{ id : "xx" }
            });
            //如果只是要 get 一次 value, 用快照
            console.log(this.route.snapshot.params); //{ id : "xx" }
        }
        ngOnDestroy()
        {
            this.sub.unsubscribe(); //记得要取消订阅, 防止内存泄露 (更新 : 其实 ActivatedRoute 可以不需要 unsubscribe,这一个 ng 会智能处理,不过养成取消订阅的习惯也是很好的)
        }
    }
  • 相关阅读:
    php入门变量
    php入门引言
    帝国cms7.0修改默认搜索模版中的分页[!--show.page--]
    帝国cms 列表页分页样式修改美化【2】
    划词翻译
    MySQL几种常见的排序方式
    你的眼界决定了你的格局
    Easy Window Switcher支持Windows 10虚拟桌面
    鬼谷子的人生智慧
    接口设计的八大黄金规则
  • 原文地址:https://www.cnblogs.com/maochunyan/p/7544197.html
Copyright © 2011-2022 走看看