2016-07-16 3 views
1

Есть ли способ создать экземпляр sails.io внутри зоны поставщика услуг в Angular2, чтобы события обнаружения триггеров событий веб-памяти возникали?Использование SailsJS sails.io с угловым 2

Подраздел: как RXJS подписаться на потоки данных sails.io. Я использую Angular2 RC4 и последнюю версию SailsJS.

Связанные вопрос: Angular2 View Not Changing After Data Is Updated

ответ

2

UPDATE

Это меня раздражало, что я не мог дать полный пример того, как использовать паруса с угловыми 2 с только plunker, поэтому я создал github repo, что дает полную картину того, как это может работать.


Я вижу, как связанный с вами вопрос связал вас, приведет вас по пути зоны. Тем не менее, вы можете подключить все это вместе без необходимости ручного возиться с зонами. Here - пример того, как вы можете реализовать sails.io с Angular2 в plunker. Это использует использование RxJS для создания типа observable. Вам также нужно реализовать другую версию Angular2 change detection (все это реализовано в плунтере).

Более подробно я расскажу в своем ответе на ваш linked question.

Что касается вашего дополнительного вопроса, я не уверен, есть ли способ интегрировать поток, я считаю, что одним из намерений RxJS было уменьшить использование обратных вызовов, которые, как представляется, все еще делают sails.io.

Выдача реализации sails.io в сервисе от плункера.

constructor() { 
    this._ioMessage$ = <Subject<{}>>new Subject(); 
    //self is the window object in the browser, the 'io' object is actually on global scope 
    self.io.sails.connect('https://localhost:1337');//This fails as no sails server is listening and plunker requires https 
    this.listenForIOSubmission(); 
} 

get ioMessage$(){ 
    return this._ioMessage$.asObservable(); 
} 

private listenForIOSubmission():void{ 
    if(self.io.socket){//since the connect method failed in the constructor the socket object doesn't exist 
    //if there is a need to call emit or any other steps to prep Sails on node.js, do it here. 
    self.io.socket.on('success', (data) => {//guessing 'success' would be the eventIdentity 
     //note - you data object coming back from node.js, won't look like what I am using in this example, you should adjust your code to reflect that. 
     this._ioMessage$.next(data);//now IO is setup to submit data to the subscribbables of the observer 
    }); 
    } 
} 
+0

Я считаю, что синтаксис '>' обесценивается. Новый синтаксис будет 'this._ioMessage $ = new Subject() as Subject <{}>;' – ktamlyn

+0

Я попробую это, спасибо за ответ! – ktamlyn

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