2016-07-25 10 views
3

私はangular2-odataライブラリを統合しようとしています。 ODataConfigurationのインスタンス化中のエラー:Angular2 - 'new'なしでクラスコンストラクタを呼び出すことはできません

EXCEPTION:私は

@Injectable() 
    class MyODataConfig extends ODataConfiguration{ 
     baseUrl="http://localhost:54872/odata/"; 
    } 

    bootstrap(app,[ 
     //some of my other providers etc. 
     provide(ODataConfiguration, {useClass:MyODataConfig}), 
     ODataServiceFactory, 
    ] 

問題は、私は私が得るすべてのエラーを以下れるODataServiceFactory注入しようとすることです使用しています! (ClassService - > ODataServiceFactory - > ODataConfiguration)。 元の例外:例外TypeError:クラスのコンストラクタODataConfigurationは「新しい」

なしで起動することができない、私はそれをGoogleで検索し、それが拡張クラスを注入しようとしているときに、いくつかの問題があるようですが、私はこのための解決策を見つけることができませんでした。どんな助けもありがとう。

+0

あなたのクラスは 'super();を呼び出すコンストラクタを必要とすると思います – Harangue

+0

提案ありがとうございますが、コンストラクタを追加しようとしました{ super(); }、例外は同じです。 –

+0

'ODataServiceFactory'実装も投稿できますか? –

答えて

1

一時的な回避策がODataConfigurationクラスに新しいを使用して、baseUrlに上書きすることです:完全なコードを参照してください

@Component({ 
    templateUrl: './categoryGridOData.component.html', 
    selector: 'my-category-grid-odata', 
    providers: [ { provide: ODataConfiguration, useFactory:() => { 
     let odta = new ODataConfiguration(); 
     odta.baseUrl = 'http://services.odata.org/V4/Northwind/Northwind.svc'; 
     return odta; } 
    }, ODataServiceFactory ], 
    styleUrls: [ './carGrid.component.css'] 
}) 
export class CategoryGridODataComponent { 

を:いくつかの詳細についてはhttps://github.com/StefH/angular2-webpack-starter/blob/_stef_dev/src/app/car/categoryGridOData.component.ts#L18

は、以下を参照してください。https://github.com/gallayl/angular2-odata/issues/3

関連する問題