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

时间:2013-11-19 11:20:09

标签: javascript angularjs angularjs-service initialization

我写了一个服务。里面有一个功能。是否可以使用该功能初始化服务?看看这段代码。

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

});

我试图通过self.init();来调用init。但它没有用。

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

3 个答案:

答案 0 :(得分:1)

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

Plunk

答案 1 :(得分:1)

请尝试使用.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

答案 2 :(得分:0)

以下是两种调用工厂内部方法的方法:

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