如何通过从服务本身调用函数来初始化服务

How to initialize a service by calling a function from the service itself

本文关键字:服务 函数 初始化 调用 何通过      更新时间:2023-09-26

我写了一个服务。里面有一个函数。有可能用这个函数初始化服务吗?看看这个代码。

app.factory('SidebarService',function(){
  var self = this;
  self.init();
  return{
    init : function(){
      alert("This is sidebar");
    }
  };
});

我尝试通过self.init();调用init;。但它不起作用。

Pluker链接:http://plnkr.co/edit/gYw2VlneeUIJ7kHJF0Xz?p=preview

app.factory('SidebarService',function(){
    var obj = {};
    obj.init = function(){
        alert("This is sidebar");
    }  
    obj.init();
    return obj;  
});

Plunk

请尝试使用.service

app.service('SidebarService',function(){
    var self = this;
    this.init = function () {
        alert("This is sidebar");
    };
    self.init();
});

请参阅更新的plunker:http://plnkr.co/edit/gjaIudMZaVsKGxIHCYvr?p=preview

这里有两种方法可以调用工厂的内部方法:

fessmodule.factory('Data', [ function() {
    var inner = function(){
     console.log('in inner');    
    }
    inner();  
       var factory = {
            query: function () {
                 console.log('in query');                
            },
           newone: function(){
             return factory.query();
           },
           inners: function(){
             return inner();
           }
        }       
         factory.query();
        return factory;
}]);

演示Fiddle