2015-04-01 108 views
2

我是meanjs的新手,我刚刚创建了一个用于添加产品的新模块。这些产品显示在主页上。但主页中的显示没有更新real time。我只是在一个选项卡中添加了新产品,并且需要刷新其他选项卡中的产品列表以查看更改。这怎么可以在real time平均值js - 实时显示更新

编辑:

通过更新用我的意思是,当过一个新的记录被添加到数据库中,产品展示应该实时更新。现在我需要刷新页面以查看新添加的产品。 我的代码是

客户

 $http.get('/latestproducts'). 
      success(function(data, status, headers, config) { 
      $scope.latestproducts = data; 
      }) 

服务器

exports.getlatestProducts = function(req, res) { 
    Product.find().sort('-created').populate('user', 'displayName').exec(function(err, products) { 
     if (err) { 
      return res.status(400).send({ 
       message: errorHandler.getErrorMessage(err) 
      }); 
     } else { 
      res.jsonp(products); 
     } 
    }); 
+1

什么是更新?编辑 - 你可以发布一些你的代码,或者一些更详细的问题?这很难回答。谢谢。 – jammypeach 2015-04-01 12:34:20

回答

2

如果你的意思是浏览器标签,mean.js不会,如果FO你怎么做。您可以使用套接字通知服务器进行了更改,然后向所有活动选项卡广播消息以刷新数据。您也可以尝试window.blur/window.focus事件来重新加载数据。

如果你的产品,在同一页上的产品形式列表中,你有两个选择:

  • 添加保存项目到您的本地收藏保存poduct和服务器recive成功的消息后。

  • 保存poduct并从服务器收回成功消息后,请更新本地集合(从服务器获取对象列表)。

+0

谢谢。你可以找到一些使用平均值js的套接字的示例代码吗? – 2015-04-02 07:35:07

+1

我不,但我最喜欢的lib是http://socket.io/。这里是教程:https://vexxhost.com/blog/mean-socket-io-integration-tutorial/ – Mike 2015-04-02 08:43:31

+0

感谢迈克,这是一个很好的教程,但我坚持一个错误'无法实例化模块btford.socket- io'我使用bower'bower install angular-socket-io'安装了angular-socket-io。你有这样的错误吗? – 2015-04-02 11:42:28

0

我刚刚发布angular-socket-resource。一旦使用服务而不是手动执行http请求,您可以使用它来自动侦听将更新本地数据的socket.io更新。