角度选择更改刷新组件

时间:2018-12-07 15:44:27

标签: angular

我有一个7号角分量,该分量显示a中的某些位置。然后,根据选定的值,创建一个嵌套组件(日历)。 我只希望更改事件没有选择刷新嵌套的组件。加载时很好。

我是新来的,我应该在角度训练中错过一些东西,但我不明白。

这是我的代码:

    <select class="sites" [(ngModel)]="selectedSite" (ngModelChange)="onChangeSite($event)">
        <option *ngFor='let site of data.sites' [ngValue]='site.id'>{{ site.name }}</option>
    </select>

<app-weeklycalendar [calendar]='selectedSite'></app-weeklycalendar>

我想我应该在app-weeklycalendar中添加一些内容,但我不知道什么

.ts

export class SiteCalendarComponent implements OnInit {
    ready: Promise<boolean>;
    private data = {};
    private selectedSite = 1;
    private calendar = {};

  constructor(private App:AppService, private Route: ActivatedRoute) { }

  ngOnInit() {
    this.App.get("sites/activesites").subscribe(
      result => {
        this.data = result;
        this.ready = Promise.resolve(true);
    })
  }

  onChangeSite(siteId) {
    this.selectedSite = siteId;
    console.log(this.selectedSite);
  }
}

感谢您的回复。而且,如果您可以添加说明,将会对我有所帮助。

1 个答案:

答案 0 :(得分:0)

@Input()属性更改检测的一种方法可能是:

import { Component, Input, OnInit } from '@angular/core';

@Component({
    selector: 'app-weekly-calendar',
    template: `Your code`
})

export class WeeklycalendarComponent implements OnInit {

    private _calendar: number;

    @Input() set calendar(value: number) {
        this._calendar = value;
        // Refresh the calendar when a value changes        
    };

    get calendar(): number {
        return this._calendar;
    }

    constructor() { }

    ngOnInit() { }
}

有用的资源: