74 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {
 | 
						|
  Component,
 | 
						|
  EventEmitter,
 | 
						|
  Input,
 | 
						|
  Output,
 | 
						|
  NgModule
 | 
						|
} from '@angular/core';
 | 
						|
import { BrowserModule } from '@angular/platform-browser';
 | 
						|
 | 
						|
// #docregion
 | 
						|
@Component({
 | 
						|
  selector: 'my-confirm',
 | 
						|
  template: `
 | 
						|
    <button (click)="onOkClick()">
 | 
						|
      {{okMsg}}
 | 
						|
    </button>
 | 
						|
    <button (click)="onNotOkClick()">
 | 
						|
      {{notOkMsg}}
 | 
						|
    </button>
 | 
						|
  `
 | 
						|
})
 | 
						|
class ConfirmComponent {
 | 
						|
  @Input() okMsg: string;
 | 
						|
  @Input('cancelMsg') notOkMsg: string;
 | 
						|
  @Output() ok =
 | 
						|
    new EventEmitter();
 | 
						|
  @Output('cancel') notOk =
 | 
						|
    new EventEmitter();
 | 
						|
 | 
						|
  onOkClick() {
 | 
						|
    this.ok.next(true);
 | 
						|
  }
 | 
						|
  onNotOkClick() {
 | 
						|
    this.notOk.next(true);
 | 
						|
  }
 | 
						|
}
 | 
						|
// #enddocregion
 | 
						|
 | 
						|
 | 
						|
@Component({
 | 
						|
  selector: 'hero-io',
 | 
						|
  template: `
 | 
						|
    <my-confirm [okMsg]="'OK'"
 | 
						|
                [cancelMsg]="'Cancel'"
 | 
						|
                (ok)="onOk()"
 | 
						|
                (cancel)="onCancel()">
 | 
						|
    </my-confirm>
 | 
						|
    <span *ngIf="okClicked">OK clicked</span>
 | 
						|
    <span *ngIf="cancelClicked">Cancel clicked</span>
 | 
						|
  `
 | 
						|
})
 | 
						|
class AppComponent {
 | 
						|
  okClicked: boolean;
 | 
						|
  cancelClicked: boolean;
 | 
						|
 | 
						|
  onOk() {
 | 
						|
    this.okClicked = true;
 | 
						|
  }
 | 
						|
  onCancel() {
 | 
						|
    this.cancelClicked = true;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
@NgModule({
 | 
						|
  imports: [ BrowserModule ],
 | 
						|
  declarations: [
 | 
						|
    AppComponent,
 | 
						|
    ConfirmComponent
 | 
						|
  ],
 | 
						|
  bootstrap: [ AppComponent ]
 | 
						|
})
 | 
						|
export class HeroesIOModule { }
 |