【问题标题】:Angular 7 observables pass to child component works partiallyAngular 7 observables 传递给子组件部分工作
【发布时间】:2019-09-23 22:31:23
【问题描述】:

我面临一个问题。我使用 Angular 7 并请求从 webapi 获取。它返回一组用户对象。当我想把它写在那里时它可以工作,但是如果我将它传递给子组件它就不能很好地工作。我只得到第一项,并且在无法读取未定义错误的属性“名称”之后。

父组件html:

<div class="container mt-5">
    <ul class="user__list">
        <li class="user" *ngFor="let user of users$ | async">
          {{ user.name }} - {{ user.id }} 
        </li>
    </ul>

    <ul class="user__list">
       <li class="user" *ngFor="let user of users$ | async">
           <app-search-namecard [userNamecard]="user"></app-search-namecard>
                {{ user.name }} - {{ user.id }} 
       </li>
    </ul>

 </div>

父组件ts:

  export class SearchComponent implements OnInit {
  searchText: string;
  public users$: Observable<Array<User>>;

      constructor(private route: ActivatedRoute, private searchSevice: SearchService) {
        this.route.paramMap.subscribe((params: ParamMap) => {
          this.searchText = params.get('searchText');
        });
      }

      ngOnInit(): void {
        this.users$ = this.searchSevice.search(this.searchText);

     }

}

搜索名片组件html:

<div class="container mt-5">  
  {{ user.name }} - {{ user.id }}   
</div>

在seach名片组件ts中:

  @Input() userNamecard: User ;

输出对我来说很奇怪。

它在邮递员中运行良好。

对于我没有将信息传递给子组件的第一个列表,它运行良好,显示数据。

对于第二个列表,它在给出和错误之后显示列表的第一个元素:无法读取未定义的属性“名称”

我错过了什么?

【问题讨论】:

  • 确保您从子组件中的 userNamecard 传递和读取。

标签: angular observable angular7 web-component


【解决方案1】:

您在子组件中命名属性 userNamecard,并在您的 html 中使用 user 将其替换为 userNamecard

【讨论】:

  • 该死的,非常感谢你,你是对的。我会将其标记为答案
猜你喜欢
  • 2019-06-10
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 2017-05-28
  • 2018-11-25
  • 2019-12-29
  • 2019-07-30
  • 1970-01-01
相关资源
最近更新 更多