Angular工厂变量更改未反映在控制器中

时间:2014-11-17 05:37:15

标签: javascript angularjs angularjs-service

我一直在尝试在我的Angular应用程序中使用工厂,以便能够在控制器之间共享和更新变量,但是我没有太多运气。我正在处理的应用程序基本上将消息接收到收件箱中,然后我可以决定是否在可视化工具上显示它们供人们查看。这是一个实时交互式应用程序,可以在会议期间使用,或者当演讲者想要与观众互动并查看他们对问题/陈述的回答时使用。

我正在使用工厂来跟踪将在可视化工具页面上显示的队列中的消息。当我从收件箱中将消息添加到队列中时,似乎正在更新工厂。但是,在可视化工具页面上,引用工厂的范围变量未更新。

这是我的工厂代码:

angular.module('tellApp')
  .factory('VisualizerFactory', function () {

  return {
    queue: [],
    active: {},
    addToQueue: function(msg){
      this.queue.push(msg);
    }
  }

  });

基本上,从我的收件箱中,我调用addToQueue函数并传入包含该消息和一些细节的对象。在可视化器页面上,我正在做的只是查看VisualizerFactory对象以查看它是否正在更新而不是。它只返回空的VisualizerFactory对象。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题很可能是您的示波器中有工厂的副本,由于它是不同的参考,因此不会更新。

您可以从服务触发消息以通知控制器实例。