首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular7 7:-将一个组件分成两个兄弟类组件

angular7 7:-将一个组件分成两个兄弟类组件
EN

Stack Overflow用户
提问于 2019-12-02 14:44:18
回答 1查看 53关注 0票数 1

我有一个angular组件,它每月显示angular-calendar (1月/2019,2019年2月.)。我显示了6个月,也有navigation按钮,以移动calendar月来回。首先,我创建了一个组件并实现了所有的逻辑。但我需要为angular-calendar创建单独的组件,为navigation按钮创建单独的组件。下面是工作示例的stackblitz:- https://stackblitz.com/edit/ang-c-p-7qundm

代码语言:javascript
复制
<!--code for navigation-->
   <div class="display-calendar">
    <button class="btn btn-sm btn-primary" (click)="getNextData()">Click next</button>

    <button class="btn btn-sm btn-primary" (click)="getPreviousData()">Click previous </button>
  </div>
<!--code for calendar months-->
      <div class="row-items"  *ngFor="let month of months">
        <mat-calendar [dateClass]="dateClass()" [startAt]="month" [selected]="selectedDate"
          (selectedChange)="onSelect($event)"></mat-calendar>
      </div>

Ts码

代码语言:javascript
复制
 ngOnInit() {
      this.getMonths(this.year, this.month);
    }
  //show calendar in months
    getMonths(year:number, month:number) { 
    this.months = [];
      for (let i = 0; i < 6; i++) {
        this.months.push(new Date(year, month++));
      }
    }
  //navigation for next Month
    getNextData() {
     if(this.curMonth+1 > this.month && this.curYear+1 >= this.year){
       this.month++
     }
     this.getMonths(this.year, this.month); 
    }
  //Navigation for previous Months
    getPreviousData(){
     if(this.curMonth-12 < this.month){
       this.month--
     }
     this.getMonths(this.year, this.month);
    }

我想做的是服务或输入方法。但我很困惑。

代码语言:javascript
复制
this.getMonths(this.year, this.month); 

此方法需要在导航组件和日历组件中调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 14:55:45

想象一下你

代码语言:javascript
复制
<navigation-control [calendar]="calendar"></navigation-control>
<multiple-calendar #calendar></multiple-calendar #calendar>

从导航控制中可以

代码语言:javascript
复制
@Input() calendar:any
next()
{
   this.calendar.month++;
   //or this.calendar.next()
}
prev()
{
   this.calendar.month--;
   //or this.calendar.prev()

}

这只是一个想法

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59141265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档