Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular.injector(..).invoke在控制台中不返回单例_Javascript_Angularjs_Coffeescript_Singleton - Fatal编程技术网

Javascript angular.injector(..).invoke在控制台中不返回单例

Javascript angular.injector(..).invoke在控制台中不返回单例,javascript,angularjs,coffeescript,singleton,Javascript,Angularjs,Coffeescript,Singleton,剧本: app = angular.module('app', []) app.factory 'MyFactory', -> val: 'Clark Kent' app.controller 'MainCtrl', ($scope, MyFactory) -> MyFactory.val = 'Waldo' $scope.myFactory = MyFactory 把这个放在控制台中: angular.injector(['ng','app']).invoke(f

剧本:

app = angular.module('app', [])

app.factory 'MyFactory', ->
  val: 'Clark Kent'

app.controller 'MainCtrl', ($scope, MyFactory) ->
  MyFactory.val = 'Waldo'
  $scope.myFactory = MyFactory
把这个放在控制台中:

angular.injector(['ng','app']).invoke(function(MyFactory) { console.log(MyFactory); })
。。。而不是
Waldo
,而是
Clark Kent

为什么不返回相同的对象?


请检查Angular中的服务是单例的,因为每个喷油器只创建一次服务

angular.喷油器
创建一个新的喷油器功能

要获取当前应用程序注入器:
angular.element(doElement.injector()

例如:

angular.element(document.querySelector('html')).injector().invoke(function(MyFactory) { console.log(MyFactory); })

Angular中的服务是单例的,因为每个注入器只创建一次服务

angular.喷油器
创建一个新的喷油器功能

要获取当前应用程序注入器:
angular.element(doElement.injector()

例如:

angular.element(document.querySelector('html')).injector().invoke(function(MyFactory) { console.log(MyFactory); })

您确定
MainCtrl
已实际执行吗?因为你在那里写的东西看起来不会调用
MainCtrl
,这意味着一切都正常运行。是的,MainCtrl被调用了,这就是为什么在plunkr中,它在输出中说
Hello Waldo
,你确定
MainCtrl
实际上已经执行了吗?因为你在那里写的东西看起来不会调用
MainCtrl
,这意味着一切都正常运行。是的,MainCtrl被调用了,这就是为什么在plunkr中它在输出中说
Hello Waldo
,请看一看angular doc,它说“以下总是成立的”。这是否与您所说的“angular.injector创建了一个新的喷油器”相矛盾?否。在示例中,angular.injector用于创建新的喷油器。然后,该注入器用于检索自身,它能够检索自身。请查看角度文档,其中显示“以下内容始终适用”。这是否与您所说的“angular.injector创建了一个新的喷油器”相矛盾?否。在示例中,angular.injector用于创建新的喷油器。然后,该注入器被用来恢复它自己,它能够恢复。