Gil*_*man 0 javascript singleton coffeescript angularjs
剧本:
app = angular.module('app', [])
app.factory 'MyFactory', ->
val: 'Clark Kent'
app.controller 'MainCtrl', ($scope, MyFactory) ->
MyFactory.val = 'Waldo'
$scope.myFactory = MyFactory
Run Code Online (Sandbox Code Playgroud)
将其放入控制台:
angular.injector(['ng','app']).invoke(function(MyFactory) { console.log(MyFactory); })
Run Code Online (Sandbox Code Playgroud)
... 而不是Waldo,你会得到Clark Kent!!
为什么它不返回相同的对象?
看看plunkr
Angular 中的服务是单例,因为它们每个注入器仅创建一次。
angular.injector然而创建了一个新的注入器函数。
要获取当前的应用程序注入器:angular.element(domElement).injector()
对于你的例子:
angular.element(document.querySelector('html')).injector().invoke(function(MyFactory) { console.log(MyFactory); })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |