如何证明angular服务是单例的

How to prove that angular services are singleton?

本文关键字:服务 单例 angular 何证明 证明      更新时间:2023-09-26

我听说angular的服务是单例的。我怎么能证明呢?对于普通的javascript,我可以创建一个单例模式,并像下面的代码一样证明它。

var mySingleton = (function(){
  var instance;
  
  function init(){
    var privateRandomNumber = Math.random();
    return {
      getRandomNumber : function(){
        return privateRandomNumber;
      }
    }
  }
  return {
    getInstance: function(){
      if(!instance) {
        instance = init();
      }
      
      return instance;
    }
  }
})();
var singleA = mySingleton.getInstance();
var singleB = mySingleton.getInstance();
console.log(singleA.getRandomNumber() === singleB.getRandomNumber());

谁能给我一个代码快照来证明Angular Services是单例的,就像我在上面的代码中做的。

var myApp = angular.module('myApp',[]);
myApp.service('mySingleton', function() {
    var privateRandomNumber = Math.random();
    return {
        Number : privateRandomNumber
    };
});
function MyCtrl($scope, mySingleton) {
    $scope.randNumber = mySingleton.Number;
}
function MyCtrl2($scope, mySingleton) {
    $scope.randNumber = mySingleton.Number;
}

HTML代码

<div ng-controller="MyCtrl">
   Hello, {{randNumber}}!
</div>
<div ng-controller="MyCtrl2">
   Hello, {{randNumber}}!
</div>

是的,两个randNumber是相同的。