簡體   English   中英

如何在Angular 2中發出@Output事件

[英]How to emit a @Output event in Angular 2

使用Angular 2版本:2.0.0-alpha.44

我試圖從組件發出輸出信號。 我在這里關注了Angular文檔.Below是我的組件的代碼

@Component({
    selector: 'summary'
})
@View({
    directives: [NgFor, NgIf, ROUTER_DIRECTIVES, LogoutComponent, BarChartDirective, SunburstChartDirective],
    templateUrl: 'view/summary-component.html'
})
export class SummaryComponent {
    @Output() loadSummary: EventEmitter = new EventEmitter();
    project: Project;
    data: any;

    constructor(public http: Http,
            public router: Router,
            public xxxGlobalService: XXXGlobalService) {
        console.log("SummaryComponent: Created");
        this.getSummary()  
    }

    getSummary() {
        this.project = this.xxxGlobalService.getOpenedProject();
        var url = "/project_summary?username="+ this.xxxGlobalService.getUser().name + "&project_id=" + this.project.id;
        this.http.get(url)
                 .map(res => res.json())
                 .subscribe(
                     data => this.extractData(data),
                     err => this.logError(err),
                () => console.log('SummaryComponent: Successfully got the summary')
        );
    }

    extractData(data) {
        this.data = data;
        console.log("SummaryComponent: Emitting loadSummary event");
        this.loadSummary.next("event");
    }
}

但是,當我嘗試分配EventEmitter(下面的行)時,我收到錯誤說“TypeError:router_1.EventEmitter不是函數”

@Output() loadSummary: EventEmitter = new EventEmitter();

我檢查了鏈接並修改了線條

@Output() loadSummary: EventEmitter;

但loadSummary似乎始終未定義。 如何發出輸出信號? 請幫忙

從beta.0開始(可能更早), EventEmitter現在處於angular2/core

使用emit()發出事件:

@Output() loadSummary: EventEmitter<any> = new EventEmitter();
...
this.loadSummary.emit("event");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM