javascript - Angular 工厂变量更改未反射(reflect)在 Controller 中

标签 javascript angularjs angularjs-service

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

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

这是我的工厂代码:

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

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

  });

基本上,我从收件箱调用 addToQueue 函数并传入一个包含消息和一些详细信息的对象。在可视化工具页面上,我所做的只是查看 VisualizerFactory 对象,看看它是否正在更新,是否没有。它只是返回空的 VisualizerFactory 对象。

感谢您的帮助!

最佳答案

问题很可能是您的范围内有工厂的副本,该副本不会更新,因为它是不同的引用。

您也许可以从服务触发一条消息来通知 Controller 实例。

关于javascript - Angular 工厂变量更改未反射(reflect)在 Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966215/

相关文章:

javascript - Angular 2/4 字符串比较与忽略大小写

javascript - 在worker中使用_config.worker = false调用Papa.parse调用postMessage

javascript - Google 输出的最大日期

javascript - 如何从 HTML Angular 访问范围内的对象

AngularJS 如何使用 ng-model 在 textarea 中显示 html?

AngularJS重定向未发生在拦截器中

javascript - 添加 Bokeh curdoc 的自定义脚本

javascript - 每次ng-repeat都调用插件可以吗?

javascript - 使用工厂方法创建服务时,AngularJS 模块未定义

javascript - AngularJS:如何将值从 Controller 传递到服务方法?