2016-04-08 20 views
0

Aufruf habe ich eine AngularJS Fabrik wie dieseein Verfahren in einem anderen Verfahren in Angular js Fabriken

.factory('sampleFactory',function(){ 
    var self = this; 
    return { 
     method1: function(arg) { 
      console.log(arg); 
     }, 
     method2: function() { 
      self.method1('hello'); 
     } 
    } 
}) 

Wenn ich diesen Code renne ich erhalte eine Fehlermeldung self.method1 Angabe einer Funktion nicht.

Wie kann ich diese Fabrik arbeiten, indem ich eine Methode innerhalb einer anderen Methode aufrufen?

+0

Das Objekt, das Sie von der Fabrik sind wieder anders ist, dass die ein 'self' Variable zeigt. – CuriousMind

Antwort

0

Try this:

.factory('sampleFactory',function(){ 
    var sampleFactory = {}; 

    sampleFactory.method1 = function(arg){ 
     console.log(arg); 
    } 

    sampleFactory.method2 = function(arg){ 
     sampleFactory.method1('hello'); 
    } 

    return sampleFactory; 

}) 
0

Meiner Meinung nach die factory recipe ist nicht das, was Sie brauchen, nach dem, was Winkel schlägt wahrscheinlich Sie für die service Rezept benötigen: Sie service verwenden sollten, wenn Sie Ihren Dienst a Klassen- wie Dienst, weil Dienste mit dem Operator new instanziiert werden. So könnte ein besserer Weg, um Ihren Dienst auf diese Weise wird erklärt:

angular 
 
    .module('test', []) 
 
    .service('sampleFactory', function sampleFactory() { 
 
    
 
    this.someProperty = 'Hello World'; 
 
    this.getSomeProperty = function() { return this.someProperty; }; 
 
    
 
    }) 
 
;

Verwandte Themen