【问题标题】:how i can use an output as input?我如何使用输出作为输入?
【发布时间】:2018-04-14 17:42:06
【问题描述】:

我尝试使用组件“event-settings”的输出作为组件“events-list”的输入,我该如何解决这个问题?

<ion-content padding>
    <button ion-button type="button" class="showFilterBtn" (click)="isCollapsed = !isCollapsed"
            [attr.aria-expanded]="!isCollapsed" >
      Show Filter
    </button>

    <event-settings [eventName]="false" [accompaniment]="false" [hidden]="isCollapsed" (searchedEvents)="getSearchedEvents($event)"></event-settings>
    <events-list *ngIf="this.events!= 'undefined'" [events]="this.events"></events-list>
</ion-content>

我的输出是一个名为 seachEvents 的 Eventemitter

public searchEvents(){

    let startdatetime= this.start.split("T");
    let startdate = startdatetime[0].split("Z")[0];
    let starttime = startdatetime[1].split("Z")[0];

    let enddatetime = this.end.split("T");
    let enddate = enddatetime[0].split("Z")[0];
    let endtime = enddatetime[1].split("Z")[0];

    this.EventService.getEventsByFilter(this.userId,this.age,startdate,enddate,this.musicDirection,
        this.maxPerson,this.country,this.federaleState,this.city)
        .forEach((events) => {
            this.searchedEvents.emit(events);
        });
}

this.events (observable) 是来自我的输出的数据

【问题讨论】:

    标签: javascript angular typescript ionic-framework


    【解决方案1】:

    首先删除输入变量前面的“this”,它可以修复它。

    如果没有,还有比 RxJs 更简单的解决方案。首先我猜你设置 getSearchEvents 的函数改变了事件变量? (如果可能,添加您的代码)

    因此,当您发出事件时,您会更改变量事件并让您的事件列表每次都使用 setter 知道它:

    event = new Event();
    @Input() set eventChange(event) {
        this.event = event;
    }
    

    在您的 HTML 中,将 [event] 替换为 [eventChange] 即可;)

    【讨论】:

    • 嘿,谢谢你的回答!但我不能写新的事件();因为Event需要参数
    • 是一个示例类名,可以写 event: any = null;
    • 请解释你有什么错误,因为它不工作太笼统了
    • 我在 console.log 中得到了事件,但事件列表中的渲染不起作用
    【解决方案2】:

    您需要使用 rxjs 可观察对象或主题。另一种选择是使用服务,在这个答案https://stackoverflow.com/a/35878524/3211852中有详细说明

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多