Angular 2 - 我需要一个组件来输出一个函数,以便嵌套组件可以调用它

时间:2016-02-02 12:58:09

标签: angularjs typescript angular

Angular 2 - 我需要一个组件来输出一个函数,以便嵌套组件可以调用它。

我正在使用打字稿和角度2。

这是输出代码:

,

我需要从嵌套的对话框组件中调用“jobCancelledNotification”。

对于我的嵌套对话框组件,我有一个输出:

@Component({
  selector: 'jobs', 
  providers: [Job, JobService, Notification, NotificationService, Counties, Towns], 
  templateUrl: './app/components/job/jobs.html',
  directives: [CORE_DIRECTIVES, FORM_DIRECTIVES, NgIf, NgFor, DialogJob, BootFlatDatePicker],
  pipes:[SearchFilter],


  outputs: ['jobCancelledNotification']


})

jobCancelledNotification = (event) => {console.log("job cancelled via output!!!!"); }

然后我尝试用它来调用它:

   @Output() jobCancelledNotification = new EventEmitter();

当对话框组件准备就绪时,需要调用jobCancelledNotification,它从父组件调用jobCancelledNotification。

1 个答案:

答案 0 :(得分:1)

首先,您不需要包含已包含的NgIf,NgFor和CORE_DIRECTIVES。

在父组件中:

override func viewDidLoad() {
    super.viewDidLoad()

    view.backgroundColor = UIColor.greenColor()

    bController = b()
    cController = c()

    bController.view.autoresizingMask = .None
    cController.view.autoresizingMask = .None

    displayContentController(bController, toFrame: CGRect(x: 0, y: 0, width: 100, height: 100))
    displayContentController(cController, toFrame: CGRect(x: 0, y: 100, width: 100, height: 100))
}

在子组件中:

```<message (message)="call($event)"></message>```
export class App {
 response: any;
 call(message: any) {
   this.response = message;
 }
}

https://plnkr.co/edit/vUocS8dDTKsJFGGSSKYk?p=preview