javascript - 知道这个 Angular 主从实现可能缺少什么吗?

标签 javascript angular

Master.component.html 在浏览器加载时显示 2 个任务:

<div class="parent">
  <ol>
    <li
      *ngFor="let task of tasks"
      (click)="onSelect(task)"
      [class.selected]="task === selectedTask"
    >
      {{task.text}} - {{task.done}}
    </li>
  </ol>
  <app-detail [task]="selectedTask"></app-detail>
</div>

当上面列表中的任务被选中时,Master.component.ts 中的 onSelect(task) 方法被触发。 onSelect(task) 方法当前为空。我希望所选任务显示在 Detail.component.html 中,但目前仅显示“详细信息加载!”显示:

<div *ngIf="task" class="detail">
  <h3>you selected {{task.text}}</h3>
  <table>
      <tr>
        <td>Text:</td>
        <td>{{ task.text }}</td>
      </tr>
      <tr>
        <td>Status:</td>
        <td>{{ task.done }}</td>
      </tr>
    </table>
</div>

{{ task }}

detail loads!

这是 Detail.component.ts:

import { Component, OnInit, Input } from '@angular/core';
import { Task } from '../models/task';

@Component({
  selector: 'app-detail',
  templateUrl: './detail.component.html',
  styleUrls: ['./detail.component.css']
})
export class DetailComponent implements OnInit {

  @Input() task : Task
  constructor() { }

  ngOnInit() {
  }

}

我将此实现创建为我在 youtube 上找到的此示例的精简版:https://www.youtube.com/watch?v=3InW7kyPDCw

知道为什么在 Master 中选择的任务没有在 Detail 中显示吗?

最佳答案

你只需要在 app-detail 选择器上添加 *ngIf 这样它就可以在 selectedTask 有值时加载,

举个例子

<div class="parent">
  <ol>
    <li
      *ngFor="let task of tasks"
      (click)="onSelect(task)"
      [class.selected]="task === selectedTask"
    >
      {{task.text}} - {{task.done}}
    </li>
  </ol>
  <app-detail *ngIf="selectedTask" [task]="selectedTask"></app-detail>
</div>

这里是 Stackblitz演示

关于javascript - 知道这个 Angular 主从实现可能缺少什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52156661/

相关文章:

javascript - 同源策略 : Writes Allowed?

javascript - Angular Base64 图像在添加时未显示

javascript - 为什么 reduce() 跳过方括号?

javascript - Angular 三元运算符?具有功能

javascript - Google Places - 滚动/缩放时标记会掉落到 map 上

javascript - Angular2 身份验证 - 类型 'AsyncSubject<{}>' 不可分配给类型 'AsyncSubject<boolean> - 可观察值和 typescript

javascript - 每当输入可观察值发生变化时,如何正确地重新计算 bool 值?

angular - *ngFor 用于组件中没有数据属性的数据范围

javascript - 以 Angular 4 隐藏垫数据表列

angular - 如何将组件选择器标记为已弃用?