2017-09-05 112 views
0

我有一些廠:調用父方法

app.factory('myFactory', function() { 
    return { 
    property1: "str", 
    property2: "str", 
    property3: "str", 
    func: function() {/*....*/}, 
    childObj:{ 
     prop1: "str", 
     prop2: "str", 
     childFunc: function() { 
     //....; 
     func();  
     } 
    } 
    } 
}) 

我能叫孩子方法內部父工廠方法?

回答

1

但是我可以在Angularjs工廠內的子方法裏面調用父方法嗎?

正如你所定義的工廠 - 沒有

app.factory('myFactory', function(){ 
    return{ 
    property1:"str", 
    property2:"str", 
    property3:"str", 
    func:function(){ 
     return "fess"; 
    }, 
    childObj:{ 
     prop1:"str", 
     prop2:"str", 
     childFunc:function(){ 
      return func(); // here you will get error: func() is undefined 
     } 
    } 
    } 
}) 

但是這會工作,當我們創建factory VAR:

app.factory('myFactory', function(){ 
    var factory = { 
    property1:"str", 
    property2:"str", 
    property3:"str", 
    func:function(){ 
     return "fess"; 
    }, 
    childObj:{ 
     prop1:"str", 
     prop2:"str", 
     childFunc:function(){ 
      return factory.func(); // <-- OK 
     } 
    } 
    }; 

    return factory; 
}) 

電話:

console.log(myFactory.childObj.childFunc()); // fess 

Demo Plunker

+0

謝謝U,我會做像你說的) – RoGGeR