【问题标题】:Cant access scope variable in In factory [duplicate]无法在工厂中访问范围变量[重复]
【发布时间】:2019-03-31 15:40:00
【问题描述】:

如何在 app.factory 中获取 $scope 变量????

app.factory('ws', function ($http) {
     console.log($scope.variable);
})

我收到错误 $scope is not defined

【问题讨论】:

标签: angularjs scope factory


【解决方案1】:

“服务是单例的,在服务中注入作用域是不合逻辑的(确实如此,你不能在服务中注入作用域)。你可以将作用域作为参数传递,但这也是一个糟糕的设计选择,因为您将在多个地方编辑范围,这使得调试变得困难。处理范围变量的代码应该放在控制器中,而服务调用应该放在服务中。”

Injecting $scope into an angular service function()

【讨论】:

  • 我使用 $ rootscope 而不是 $scope ??
  • 您不应该使用依赖注入将 $scope 和 $rootscope 都注入您的工厂。相反,你的工厂应该有一些方法,如果这些方法需要 $scope,你应该只将 $scope 作为参数传递给那些需要它的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多