无法获取和显示另一个组件中的数据

时间:2018-09-04 13:25:09

标签: angular angularfire2

我想通过id获取我的帖子,并使用角度路由将它们渲染到不同的组件中,我已经能够获取每个帖子的id并将其附加到url上,但是我不知道从哪里可以找到。< / p>

我的服务代码:

getmaxPost(id : number): Observable<maxPost>{    
  const url = `${this.basePath}/${id}`;    
  return this.db.object<maxPost>(url)
}

我的.ts代码:

getmaxPost(): void {

  const id = +this.route.snapshot.paramMap.get('id');

  console.log("this is the", id);
  this.Service.getmaxPost(id).subscribe(fileUpload => this.fileUpload = fileUpload);
}

我对.ts的导入:

import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
import { MaxPostServiceService } from '../max-post-service.service';
import { Component, OnInit, Input } from '@angular/core';

我的进口商品:

import { Observable, of } from 'rxjs';
import { Injectable } from '@angular/core';
import { maxPost } from '../max-post-model';

2 个答案:

答案 0 :(得分:0)

第一步是检查您的控制台日志“这是ID”是否正确打印。接下来,我建议您更改您的代码以订阅到:

subscribe(fileUpload => {
    console.log(fileUpload);
    this.fileUpload = fileUpload;
})

这应该可以使您在代码中的下一个地方找到亮点。

答案 1 :(得分:0)

您必须以这种方式定义路线。

  {
    path: 'max/home/post-details/:id',
    component: PostDetailComponent,
  },

已更新:

关于配置,您应该从URI中删除/home/

{
    path: 'max',
    component: MAXComponent,
    children: [
      {
        path: 'home', component: HomeComponent,
      },
      {
        path: 'window',
        component: WindowComponent,
      },
      {
        path: 'post-details/:id', component: PostDetailsComponent,
      }
}

post-detailsmax而非home

的子代

因此应代替max/home/post-details/91210655而不是max/post-details/91210655

或者,更改路由配置以使post-detaildhome的子代