【问题标题】:How to get Route Params inside Resolve Angular 2如何在 Resolve Angular 2 中获取路由参数
【发布时间】:2017-06-12 14:56:22
【问题描述】:

我正在尝试将我的路由参数放入解析中。 但是它不包含参数,但是当我从组件内部使用 activateRoute 时,它​​确实可以工作。我认为这是因为在解决方案中路线还没有改变。我该如何让它发挥作用?

post.resolve.ts

@Injectable()
export class PostResolver implements Resolve<any> {
    slug: any;

    constructor(
        private activatedRoute: ActivatedRoute,
        private memoryService: MemoryService,
        ) {}

    resolve() {

        console.log(this.activatedRoute);

        this.activatedRoute.params.subscribe(params => {
            this.slug = params['slug'];
            console.log(this.slug);
            return this.memoryService.getPost(this.slug);
        })

    }
}

app.route.ts

{
    path: 'post/:slug',
    component: PostComponent,
    data: {title: 'Post'},
    resolve: {
        post: PostResolver
    }
},

【问题讨论】:

    标签: angular angular2-routing


    【解决方案1】:
    import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
    
    resolve(route: ActivatedRouteSnapshot) {
        console.log(route.data); // {title: "Post"}
    }
    

    【讨论】:

    • 上帝保佑你?
    【解决方案2】:
    resolve(route: ActivatedRouteSnapshot) {
       console.log(route.data.title); // "Post"
       console.log(route.params['slug']) // prints the dynamic parameter value
    }
    

    【讨论】:

      【解决方案3】:
      resolve(route: ActivatedRouteSnapshot): Observable<any> {
      return this.property.getProperty(parseInt(route.paramMap.get(' ')));
      }
      

      【讨论】:

        猜你喜欢
        • 2016-11-25
        • 1970-01-01
        • 2016-10-28
        • 1970-01-01
        • 2017-07-16
        • 1970-01-01
        • 2017-07-10
        • 1970-01-01
        • 2017-12-31
        相关资源
        最近更新 更多