2017-02-09 6 views
0

次のコードは、

Error: (SystemJS) Can't resolve all parameters for $WebSocket: ([object Object], [object Object], ?). 

app.component.ts

を与えます
import { Component } from '@angular/core'; 
import {$WebSocket} from 'angular2-websocket/angular2-websocket' 
import {OnInit} from '@angular/core'; 
import {Inject} from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: `app/root-template.html`, 
    providers: [$WebSocket] 
}) 
export class AppComponent implements OnInit{  
    constructor(private websocket:$WebSocket) { 

    } 

    ngOnInit(): void { 

    console.log('init') 
    } 

} 

そしてangular2-のWebSocketのコードはここで見ることができます:https://github.com/afrad/angular2-websocket/blob/master/src/angular2-websocket.ts

私はに見てきましたとAngular 2 RC 4 "(SystemJS) Can't resolve all parameters for [object Location]: " in IE 11ですが、私と同じ問題はないようです。

Websocketのパラメータに問題があることがわかります。コンストラクタのかっこ内のパラメータを呼び出すことはできません。たとえそれを取り除いても、providers: [$WebSocket]のままでも、エラーは発生します。私は

import {$WebSocket} from 'angular2-websocket/angular2-websocket' 

を残す場合はエラー

はまさにSystemJSが解決しようとしているものをparemetersは何もありませんか?

私のemitDecoratorは、これが何であるかわからなくても真です。

答えて

1

この

//...import 

let myws = new $WebSocket("ws://127.0.0.1:7000"); // config your url 

@Component({ 
    //... 
    providers: [{provide: $WebSocket, useValue: myws}] 
}) 
export class AppComponent implements OnInit{  
    // ... 

} 

$のWebSocketコンストラクタが1つのparamを必要としてみてください、あなたはそれを提供する必要があります。

constructor(private url: string, private protocols?: Array<string>, private config?: WebSocketConfig, private binaryType?: BinaryType) 

https://github.com/afrad/angular2-websocket/blob/master/src/angular2-websocket.ts#L45

関連する問題