2017-02-17 78 views
2

創建我的自定義組件時出現錯誤。遇到的錯誤靜態解析符號值。調用函數'CreateCustomComponent',不支持函數調用

遇到的錯誤靜態地解析符號值。調用函數'CreateCustomComponent',函數調用不支持 d。考慮使用對導出函數的引用替換函數或lambda,解析符號cus_input

我的文件如下所示。任何人請給我一個在我的代碼下面的答案?

export class MyComponent { 

constructor() { 
    console.log("Component created"); 
} 
} 
export function CreateCustomComponent(componentArgs: { 
selector: string, 
inputs: Array<string>, 
template: string 

}): Type<any> { 

let comp = Component(componentArgs); 
return comp.Class({ 
    extends: MyComponent, 
    constructor: [] 
}); 
} 

export let cus_input :any = CreateCustomComponent({selector: 'cus-inp',inputs : ["myinput"],template : '<input [value]="myinput" />'}) 

export const MY_INP_Component: any = [cus_input]; 

在導入等作爲下面的「app.modeule.ts」

import { MY_INP_Component} from './customcomponent/core'; 

import { AppComponent } from './app.component'; 


@NgModule({ 
    imports: [BrowserModule, FormsModule, HttpModule,  RouterModule.forRoot(rootRouterConfig, { useHash: true })], 
    declarations: [AppComponent, 
    MY_INP_Component 
    ], 
    bootstrap: [AppComponent], 

    }) 
export class AppModule { } 

這裏爲什麼中號創建部件動態地意味着我有用於使m創建部件動態地設置jQuery插件和使用這些分量輸入並在jquery插件中輸出。

回答

3

升級我的CLI版本後,我也有這個問題。它與AOT編譯器有關。

您可以通過出口和在你的應用程序模塊在另一個函數包裝您的功能解決這個問題(必須是應用模塊),然後使用導出功能,像這樣:

export function doCreateCustomComponent(){ 
    return CreateCustomComponent(...); 
} 

@NgModule({ ... 
declarations: [doCreateCustomComponent], 
bootstrap: [doCreateCustomComponent] 
... }) 
export class AppModule { } 

(我已經簡化您的代碼略)

+0

謝謝。這個解決方案幫助我解決了我的問題 –

+0

...也似乎不適合我 – Tyguy7

相關問題