AoT 编译中的 Angular2 主机绑定问题
Angular2 host binding issue in AoT compilation
使用最新的 Angular2 Webpack Starter (v5.4.1. / Angular 2.4.6) 我正在尝试使用 AoT 编译器构建我的代码。在自定义表单输入组件中,我有这个 host binding
@Component({
selector: 'my-selector',
templateUrl: 'mycustominput.component.html',
host: {'(input-blur)': 'onInputBlur($event:any)'},
providers: [INPUT_VALUE_ACCESSOR]
})
使用npm run build:aot:prod
构建运行 失败并显示此消息
[at-loader] Checking finished with 2 errors
Error in bail mode: [at-loader] compiled/src/app/views/mycustominput.component.ngfactory.ts:142:35
TS2346: Supplied parameters do not match any signature of call target.
ngfactory
中相应的行 (142) 是这样的:
141 if ((eventName == 'input-blur')) {
142 const pd_sub_0:any = ((<any>this.context.onInputBlur($event)) !== false);
143 result = (pd_sub_0 && result);
144 }
很明显跟host绑定有关系。正在 JIT 编译的开发版本中的这段代码没有问题。有什么解决办法吗?
哦,我的错。 AoT 现在抱怨的只是我的组件的回调方法中缺少 event
参数。
已更改
public onInputBlur() {...}
至
public onInputBlur(event) {...}
使用最新的 Angular2 Webpack Starter (v5.4.1. / Angular 2.4.6) 我正在尝试使用 AoT 编译器构建我的代码。在自定义表单输入组件中,我有这个 host binding
@Component({
selector: 'my-selector',
templateUrl: 'mycustominput.component.html',
host: {'(input-blur)': 'onInputBlur($event:any)'},
providers: [INPUT_VALUE_ACCESSOR]
})
使用npm run build:aot:prod
构建运行 失败并显示此消息
[at-loader] Checking finished with 2 errors
Error in bail mode: [at-loader] compiled/src/app/views/mycustominput.component.ngfactory.ts:142:35
TS2346: Supplied parameters do not match any signature of call target.
ngfactory
中相应的行 (142) 是这样的:
141 if ((eventName == 'input-blur')) {
142 const pd_sub_0:any = ((<any>this.context.onInputBlur($event)) !== false);
143 result = (pd_sub_0 && result);
144 }
很明显跟host绑定有关系。正在 JIT 编译的开发版本中的这段代码没有问题。有什么解决办法吗?
哦,我的错。 AoT 现在抱怨的只是我的组件的回调方法中缺少 event
参数。
已更改
public onInputBlur() {...}
至
public onInputBlur(event) {...}