带有输出参数的 Angular 2 降级组件到 Angular 1

Han*_*ril 6 downgrade angular angular7

我成功地将 Angular 7 组件降级为 Angular 1,但我遇到了一个小问题,我尝试通过多种方法解决。

我的降级组件的输出参数如下:

@Output()isValid = new EventEmitter<boolean>();
Run Code Online (Sandbox Code Playgroud)

它的触发方式如下:

this.isValid.emit(false);
Run Code Online (Sandbox Code Playgroud)

在我的 Angular 1 组件中,我将其降级后使用如下:

  • 在模板中:
<downgrade-employee-selector (is-valid)="{{vm.validateEmployeeSelector($event)}}"> </downgrade-employee-selector>
Run Code Online (Sandbox Code Playgroud)
  • 在 ts:
self.validateEmployeeSelector = ($event) => {console.log($event);}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在 Angular 1 函数$event值始终未定义,我无法理解它是如何工作的。

Han*_*ril 5

我找到了解决我的问题的方法,如下所示:

  • 定义我的组件输入和输出:
directive('downgradeEmployeeSelector', downgradeComponent({
        component: EmployeeSelectorComponent,    
        inputs: ['selectedEmployeesIds', 'multiSelect', 'required'],
        outputs: ['isValid', 'selectedEmployeesIdsChange']
      })
Run Code Online (Sandbox Code Playgroud)
  • 在 Angular 1 html 页面中调用输出和输入:
<downgrade-employee-selector name="empSelector" [selected-employees-ids]="vm.selectedEmployeeIds" [required]="true" (is-valid)="vm.validateEmployeeSelector($event)"></downgrade-employee-selector>
Run Code Online (Sandbox Code Playgroud)