2017-02-21 44 views
0

使用最新的Angular2 Webpack Starter(v5.4.1。/ Angular 2.4.6)我试图用AoT编译器构建我的代码。在自定义窗体输入分量I有此host bindingAoT编译中的Angular2主机绑定问题

@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 } 

显然它与主机绑定有关。 JIT编译的开发版本中没有这个代码的问题。任何想法如何解决这一问题?

回答

0

哦,我的坏。这只是在我的组件中的回调方法中缺少的event参数,AoT现在抱怨了。

改变

public onInputBlur() {...} 

public onInputBlur(event) {...}