【问题标题】:Angular $broadcast not working on local content?Angular $broadcast 不适用于本地内容?
【发布时间】:2014-02-12 09:56:25
【问题描述】:

我有一个在设备上本地运行的应用,应用所需的所有内容都存储在本地。

我的问题是这样简化的 :)

In a service :
$rootScope.$broadcast('Weather.update', somevalue);

In Controller :
$scope.$on('Weather.update', function (event, temp) {
// weather has been updated
$scope.temperature = temp + '°';
})

这在运行网络服务器时工作正常,但在没有运行时会失败。

所以我的问题是:$broadcast 只有在应用程序不在本地运行时才有效吗?

附加信息: 如果我在控制器中使用 $watch 进行设置,监听服务中的函数,那效果很好,但我试图避免这种解决方案,因为 $watch 似乎作为一个无休止的监听循环运行,会给 cpu 带来负载(在我的情况下这是一个问题),所以我可以在需要时通知而不是不断倾听的解决方案对我来说似乎是一个更好的解决方案。

【问题讨论】:

  • 你是如何在本地运行应用程序的?
  • 它应该在本地工作。 $broadcast 一直被 angular core 使用(例如,当您更改路由时,它会触发一堆广播,例如“$routeChaneSuccess”。您的本地机器没有检索到天气更新的“somevalue”可能是一些问题吗?
  • @Atropo 我在 Chrome 中使用 localpath 到 index.html
  • @mylescc 我会重新启动,看看是否有什么不同并在另一台机器上测试 - 我会让你知道
  • @mylescc 似乎只需要重新启动计算机就可以使 $broadcast 再次开始发射,奇怪的世界这些位和字节,但无论如何,感谢你们俩抽出时间。干杯

标签: javascript angularjs broadcast


【解决方案1】:

如果您使用的是 Chrome,请尝试使用以下选项启动它:--allow-file-access-from-files,然后在本地打开您的应用程序。

【讨论】:

    【解决方案2】:

    如果应用程序在本地运行,$broadcast 是否也可以工作? 是的,如果没有,请尝试重新启动,对我有用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2015-10-05
      • 2014-01-17
      • 2023-02-03
      • 2019-08-26
      • 2018-12-29
      相关资源
      最近更新 更多