【问题标题】:SailsJS - Angular2 - Resourceful Pub/SubSailsJS - Angular2 - 资源丰富的发布/订阅
【发布时间】:2017-02-18 09:00:28
【问题描述】:

在 Web 上看不到太多涵盖 Angular2 和 SailsJS 资源丰富的 Pub/Sub 场景的内容。我正在尝试查看新记录的模型并将它们显示在我的 Angular2 应用程序中。我正在使用angular2-sails 模块。下面的代码成功地将数据获取到我的 Angular 应用程序中,但需要刷新页面才能获取新数据。目标是在不刷新页面的情况下实时获取数据。

Sails 控制器操作:

  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") }
    )
  }

【问题讨论】:

    标签: javascript angular sails.js


    【解决方案1】:

    只需要.on("model")我是.publishCreateing

     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") }
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2015-04-28
      相关资源
      最近更新 更多