【问题标题】:Angular 2: Undefined route parameter valueAngular 2:未定义的路由参数值
【发布时间】:2018-06-02 13:08:10
【问题描述】:

我是 Angular 新手,如果我对术语的理解不正确,请纠正我。

在我需要读取子组件中的路由参数值的示例应用程序上工作。我能够打印“参数”对象,但无法提取其中的数据。只需粘贴我的代码,以便我可以提供更多详细信息:

客户详细信息组件:

 ngOnInit() {

        this.route.parent.params.subscribe((params: Params) => {
           console.log( params);
        console.log("Id value" + params['id']);

       if (1) {
    this._custServ.getCustomerDetailsById(1)
      .subscribe((customer: ICustomer) => {
        this.customer = customer;
       //s console.log(customer.id);

      });
  }
});

}


我正在访问的网址:http://localhost:4200/customers/1/details


谷歌浏览器控制台:

messages on console

我从一天开始就尝试获取参数值,但没有运气。在这种情况下你能指导我吗?

谢谢 普拉桑特


根据 Sujeethan 的指导更新了代码,但现在我收到了 id 作为空值。下面组件的完整代码。 Code

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    无论如何,您的控制台显示正确的值,只是您的 if 条件错误,您应该分配该值并检查 if 条件

    ngOnInit() {
        this.route.parent.params.subscribe((params: Params) => {
            console.log("Id value" + params['id']);
            let id = params["id"];
            if (id ==="1") {
                this._custServ.getCustomerDetailsById(1)
                    .subscribe((customer: ICustomer) => {
                        this.customer = customer;
                    });
            }
        });
    }
    

    【讨论】:

    • 嗨 Sajeetharan,我更新了代码,但现在收到的是空值。控制台消息:“Id value null”
    • 嗨 Sajeetharan,我使用了相同的代码,但仍然看到 id 值未定义。有什么想法我是否遗漏了什么?
    • 我刚刚复制了您的代码并粘贴到 VS 编辑器中并检查了结果。不幸的是,它仍然是未定义的值。
    • 用你提供的最新图片我仍然看到 if(1)
    • 感谢 Sanjeethan 的帮助 :) 问题是路由文件中的拼写错误:我在 id 后面放了一个空格,Sanjeethan 与我进行了一次屏幕共享会话,并确定并修复如下.愚蠢的错误,但吸取了教训:) { path :'customers/:id' , component : NewCusomerComponentComponent, children : [{path :'details' ,component : CustomerDetailsComponent}] }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2016-11-30
    • 2018-10-06
    • 2018-12-08
    • 2016-03-16
    • 1970-01-01
    相关资源
    最近更新 更多