2017-02-21 69 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) {...}