私は、typescriptのionic 2でwebsocketサーバーに接続するサンプルアプリケーションを作成しています。 repoサービスでサービスを注入する際に依存関係のパラメータを渡す方法(Ionic 2/Angular 2/Typescript)
私の要件へのリンクは、アプリケーション中のWebSocket接続は、接続を作成するには、私はangular2-websocketを使用してい
を起動することです。
参考文献:
http://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html
http://blog.thoughtram.io/angular/2015/05/18/dependency-injection-in-angular-2.html
私はエラーを取得しています」のすべてのパラメータを解決できません '$のWebSocket'(?文字列、配列、)すべてのパラメータがInjectで装飾されているか、有効なタイプの注釈を持っていること、および '$ WebSocket'が注入可能で装飾されていることを確認してください。 "
CODE: app.ts
import {App, Platform} from 'ionic-framework/ionic';
import {TabsPage} from './pages/tabs/tabs';
import {ConnectionService} from './framework/connection/connection-service'
import {$WebSocket} from 'angular2-websocket/angular2-websocket';
import {bootstrap} from 'angular2/platform/browser';
// https://angular.io/docs/ts/latest/api/core/Type-interface.html
import {Type} from 'angular2/core';
@App({
template: '<ion-nav [root]="rootPage"></ion-nav>',
config: {}
})
export class MyApp {
rootPage: Type = TabsPage;
constructor(platform: Platform, private conn : ConnectionService) {
platform.ready().then(() => {
this.conn.connect();
});
}
}
bootstrap(MyApp, [$WebSocket, ConnectionService]);
import {Injectable, Component, Inject} from 'angular2/core';
import {$WebSocket} from 'angular2-websocket/angular2-websocket';
import {bootstrap} from 'angular2/platform/browser';
@Injectable()
export class ConnectionService {
private _status: number;
//private connection: $WebSocket;
constructor(private connection : $WebSocket = new $WebSocket("ws://echo.websocket.org")) {
console.log("Starting connection");
//this.connection = new $WebSocket("ws://echo.websocket.org");
this.connection.onClose(this.onCloseHandler);
this.connection.onError(this.onErrorHandler);
this.connection.onOpen(this.onOpenHandler);
this.connection.onMessage(this.onRecieveHandler, {});
}
...
public connect() {
this.connection.connect(true);
}
...
}
bootstrap(ConnectionService, [$WebSocket]);
'@App()'は、($ WebSocket、useValue:new WebSocket( "ws://echo.websocket.org")が提供するブートストラップの代わりに、App Decorators注釈のプロバイダを使用しました。 –
@GunterはいIonicに特有のものです。「イオンフレームワーク/イオン」からインポートすることができます。 – tymspy
これは、Ionic2アプリでブートストラップする必要がないことを意味します@tymSpy? –