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 Di not working - cannot resolve all parameters for и 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 пытается решить?

Мой 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 параметров, вам необходимо предоставить.

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

 Смежные вопросы

  • Нет связанных вопросов^_^