从子组件Angular中的URL插入获取的值

菠萝先生

我正在尝试从我想在子组件中注入的Url中注入一个值。我可以从url中获取参数,并使用一个属性更新DOM,但是当我将其注入子组件中时,相同的属性的行为并不相同。

这是我的父组件

@Component({
  selector: 'app-posts',
  templateUrl: 
`
<div class="container">
  <h1><app-task-title [taskId]="router"></app-task-title></h1>
  <h2>{{router}}</h2>
  <app-tab [tacheLabelId]="router"></app-tab>
</div>
`,
  styleUrls: ['./posts.component.scss']
})
export class PostsComponent implements OnInit, DoCheck {

  /**Variables from the url */
  router! : number


  constructor(private route : ActivatedRoute) { }


  ngDoCheck(): void {
    this.router = Number(this.route.snapshot.paramMap.get('route'));
  }

  ngOnInit(): void {
  }
}

我可以看到h2标签发生了变化,但其他的却没有

这是我的孩子部分

@Component({
  selector: 'app-task-title',
  template: `
      {{taskLabel}}
  `,
  styles: [
  ]
})
export class TaskTitleComponent implements OnInit {

  @Input() taskId! : number;
  taskLabel!: string;
  constructor() { }

  ngOnInit(): void {
    switch (this.taskId) {
      case 1:
        this.taskLabel = "Title 1"
        break;
      case 2:
        this.taskLabel = "Title 2"
        break;
      case 3:
        this.taskLabel = "Title 3"
        break;
      case 4:
        this.taskLabel = "Title 4"
        break;

      default:
        this.taskLabel = "Title 0"
        break;
    }
  }

}

我已经尝试过的

  1. 使用router属性作为字符串,然后使用该语法:<h1><app-task-title taskId={{router}}></app-task-title></h1>但是结果是相同的。
  2. 使用一种在DOM中返回值的方法。

如果您对DOM中属性的行为有任何解释,欢迎使用

Arnaud Denoyelle

我的猜测是ngOnInit在子组件中调用函数为时过早,taskId尚未得到重视。如果您想确定的话,可以@Input在设置器上使用

export class TaskTitleComponent {

  // You might not need this attribute anymore
  private _taskId! : number;
  taskLabel!: string;

  @Input()
  set taskId(taskId: number) {
    this._taskId = taskId;
    switch (this._taskId) {
      case 1:
        this.taskLabel = "Title 1"
        break;
      [...]
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Angular 9中从子组件访问父组件

来自分类Dev

React:提交时从子组件获取表单值

来自分类Dev

在 Angular 的组件中插入 JavaScript

来自分类Dev

如何从子组件中获取输入以在表单中注册?

来自分类Dev

Angular 8:在子组件中调用该方法后,使用ViewChild从子到父获取方法结果

来自分类Dev

如何从子组件的输入字段中呈现更新的值

来自分类Dev

从子组件修改 vue app main.js 中的值

来自分类Dev

在 Angular 中获取并插入 Django 设置的 CSRF cookie 的值

来自分类Dev

在Angular 2中从子组件更改指令属性

来自分类Dev

如何从子组件Angular 2的属性中收集数据

来自分类Dev

React如何从子组件到父组件TypeScript获取选定的值

来自分类Dev

React如何从子组件到父组件TypeScript获取选定的值

来自分类Dev

如何获取输入文本的值并将其从子组件传递到父组件?

来自分类Dev

单击父组件,从子组件获取数据

来自分类Dev

从子组件更改值时,Angular父组件属性不会更新

来自分类Dev

从子组件更新 UI 的 Angular 将值反映到父组件

来自分类Dev

根据从子列表中获取的值创建新列表

来自分类Dev

从子列表LI标签中获取a href值

来自分类Dev

MySQL查询从子表中获取最新值

来自分类Dev

从子表中获取一定的值

来自分类Dev

如何从子组件获取表单中的数据并将其传递回父组件?

来自分类Dev

如何在反应中访问从子组件到父组件的值

来自分类Dev

在db中插入后获取所有url GET值和一些随机值

来自分类Dev

在Angular 8中将FormArray验证器从子组件传播到父组件

来自分类Dev

将数据从子组件传递到Angular @ViewChild中的父组件,需要2个参数

来自分类Dev

如何从子组件访问 Angular 4 中的另一个子组件

来自分类Dev

如何在Angular4中将数据从子组件传递到父组件

来自分类Dev

从子组件中调用父组件函数

来自分类Dev

如何从子组件获取对Blazor MainLayout的引用

Related 相关文章

  1. 1

    如何在Angular 9中从子组件访问父组件

  2. 2

    React:提交时从子组件获取表单值

  3. 3

    在 Angular 的组件中插入 JavaScript

  4. 4

    如何从子组件中获取输入以在表单中注册?

  5. 5

    Angular 8:在子组件中调用该方法后,使用ViewChild从子到父获取方法结果

  6. 6

    如何从子组件的输入字段中呈现更新的值

  7. 7

    从子组件修改 vue app main.js 中的值

  8. 8

    在 Angular 中获取并插入 Django 设置的 CSRF cookie 的值

  9. 9

    在Angular 2中从子组件更改指令属性

  10. 10

    如何从子组件Angular 2的属性中收集数据

  11. 11

    React如何从子组件到父组件TypeScript获取选定的值

  12. 12

    React如何从子组件到父组件TypeScript获取选定的值

  13. 13

    如何获取输入文本的值并将其从子组件传递到父组件?

  14. 14

    单击父组件,从子组件获取数据

  15. 15

    从子组件更改值时,Angular父组件属性不会更新

  16. 16

    从子组件更新 UI 的 Angular 将值反映到父组件

  17. 17

    根据从子列表中获取的值创建新列表

  18. 18

    从子列表LI标签中获取a href值

  19. 19

    MySQL查询从子表中获取最新值

  20. 20

    从子表中获取一定的值

  21. 21

    如何从子组件获取表单中的数据并将其传递回父组件?

  22. 22

    如何在反应中访问从子组件到父组件的值

  23. 23

    在db中插入后获取所有url GET值和一些随机值

  24. 24

    在Angular 8中将FormArray验证器从子组件传播到父组件

  25. 25

    将数据从子组件传递到Angular @ViewChild中的父组件,需要2个参数

  26. 26

    如何从子组件访问 Angular 4 中的另一个子组件

  27. 27

    如何在Angular4中将数据从子组件传递到父组件

  28. 28

    从子组件中调用父组件函数

  29. 29

    如何从子组件获取对Blazor MainLayout的引用

热门标签

归档