2017-02-18 7 views
1

Не вижу ничего в Интернете, которое охватывает Angular2 и SailsJS Resourceful Pub/Sub-сценарии. Я пытаюсь посмотреть модель для новых записей и отобразить их в своем приложении Angular2. Я использую модуль angular2-sails. Код ниже успешно получает данные в мое угловое приложение, но требует обновления страницы для получения новых данных. Цель состоит в том, чтобы получить данные в режиме реального времени без обновления страницы.SailsJS - Angular2 - Находчивый паб/Sub

Sails Controller Действия:

newCall: function(req, res) { 

    if (!req.isSocket) 
     return res.badRequest; 

    Call.create({ 
     payload: req.body 
    }) 
    .exec(function (err, newCall){ 
     if (err) return res.negotiate(err); 
     Call.publishCreate(newCall); 
     res.ok(newCall); 
    }); 
    }, 

getCalls: function(req, res) { 
    Call.find() 
    .then(function(calls) { 
     Call.watch(req.socket); 
     console.log(req.socket.id + ' is now watching for changes to Calls model'); 
     res.send(calls); 
    }) 
    .catch(function(err) { 
     console.log(err); 
    }); 
} 

Angular2 компонентов:

ngOnInit() { 
    let sails = this._sailsService; 
    sails.connect("http://localhost:1337") 
    sails.get('/socket/getCalls') 
    .subscribe(
     (resData) => { this.calls = resData.data.length}, 
     (error) => { console.log("oooops, error occured") }, 
    () => { console.log("we are finished") } 
    ) 
    } 

ответ

0

Просто пришлось .on("model") что я .publishCreate ИНГ

sails.on("call") 
    .subscribe(
    (resData) => { 
    this.call_count = this.call_count + 1; 
    this.calls_realtime.push(resData.data); 
    }, 
    (error) => { console.log("Error") }, 
() => { console.log("End") } 
) 
Смежные вопросы