gpt4 book ai didi

javascript - 如何避免将 $scope 注入(inject)到 Angular 服务中

转载 作者:行者123 更新时间:2023-11-28 01:14:38 26 4
gpt4 key购买 nike

Angular 使用使用它的 Controller 的范围( View 模型)扩展了服务函数的“this”变量。也许我在这里误解了设计意图,但这对我来说没有意义。

Here's an example on codepen to illustrate the problem 。当类函数 (TestService) 启动时,this 为空,但短暂超时后,它突然包含来自 Controller 的 $scope

如何避免 $scope 注入(inject)我的服务?

如果您也能解释此行为背后的原因,那就太好了。

最佳答案

问题出在你的依赖注入(inject)上。您已使用过

angular.module('app', ['service']).controller('ctrl', ['testService', function($scope, testService){

本来应该是

angular.module('app', ['service']).controller('ctrl', ['$scope','testService', function($scope, testService){

所以你认为的范围实际上是服务本身testService。即使您愿意,作用域也永远无法注入(inject)到服务中。您只能将 $rootSscope 注入(inject)服务中。

我想分享的另一个建议是不要在 Controller 中进行 DOM 引用,服务更好地使用指令。

关于javascript - 如何避免将 $scope 注入(inject)到 Angular 服务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com