当前位置: 首页 > 面试题库 >

将当前范围传递给AngularJS服务

蓟雪峰
2023-03-14
问题内容

将“当前”传递$scope给AngularJS服务是否正确?

我处于一种$ service的状态,知道它仅由一个控制器使用,并且我想在$ service方法本身中引用该控制器的作用域。

这在 哲学上是 正确的吗?

还是最好将事件广播到$ rootScope,然后让我的控制器侦听它们?


问题答案:

要让控制器知道何时发生异步,请使用Angular promises。

要触发$apply,您不需要作用域,可以调用$rootScope.$apply,因为在特定作用域或根目录中调用它没有区别。

关于变量读取,如果您收到参数会更好。但是您也可以从作用域中将其作为对象参数读取,但是我将使用参数,这将使您的服务接口更加清晰。



 类似资料:
  • 问题内容: 我正在使用controllerAs语法来避免控制器中的$ scope汤,并且还使用ui.bootstrap来呈现模式视图。 我需要打开一个与当前控制器共享相同作用域的modalInstace。注入示波器时,您可能会执行以下操作: 但是,由于我没有注入作用域,而是使用controllerAs语法,因此无法正常工作。 根据我的发现,您将需要使用resolve来传递数据,但是必须通过函数显式

  • 问题内容: 我想将由Razor MVC帮助程序在我的登录表单中生成的RequestVerificationToken传递给我为管理应用程序身份验证而完成的AngularJS服务 我的形式如下: @ Html.AntiForgeryToken()以这种方式呈现: 我的AngujarJs控制器成功注入了我的“ loginService”,我可以通过Post发送用户名和密码到服务 服务: 我的问题是如何

  • 问题内容: 我遇到的情况是表单跨越了几页(可能并不理想,但这就是事实)。我想为整个表单提供一个范围,以便您随身携带,以便用户在步骤之间来回移动时很容易记住状态。 所以我需要用非常伪的代码来做: 组 单击一个链接,然后将其路由到新模板(可能使用同一控制器)。 仍应与最后一页上的值相同。 是否以某种方式持久保存示波器的数据是解决此问题的正确方法,还是还有其他方法?您是否甚至可以创建一个在路由之间具有持

  • 问题内容: 我有以下控制器: 我想将绑定的ng模型传递给以下服务,该模型位于我的视图中… 如何连接控制器的作用域以传递到服务中?谢谢! 问题答案: 如何在angularjs中将范围从控制器传递到服务? 您不能将$ scope注入服务,没有像Singleton $ scope这样的东西。 我想将绑定的ng模型传递给以下服务,该模型位于我的视图中,即ng-model =“ symbol_wanted”

  • 问题内容: 是否可以通过某种方式将一个函数的范围传递给另一个函数? 例如, 我宁愿直接访问变量,即,不使用类似或的任何东西,而只是直接使用或。 问题答案: 真正访问函数私有范围的唯一方法是在函数内部声明,这样就形成了一个闭包,允许隐式访问变量。 这是您的一些选择。 直接访问 在内部声明。 如果您不想在中使用,则可以将它们都放在更大的容器范围内: 这些是您可以直接使用的变量而无需任何额外的代码来移动

  • 问题内容: 我有类似的服务 我想从控制器做类似 getCurrentPosition可以正常工作,并且城市也已确定,但是我不知道如何在控制器中访问城市。 怎么了? 调用getCurrentCity时,它将调用getCurrentPosition来确定gps坐标。该坐标作为参数传递给onSuccess方法,对吗?因此,这与我要在getCurrentCity方法中执行的操作完全相同,但我不知道如何做。