调用父方法

时间:2017-09-05 07:47:08

标签: javascript angularjs

我有一些工厂:

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

我可以在子方法中调用父工厂方法吗?

1 个答案:

答案 0 :(得分:1)

  

但是我可以在Angularjs工厂里面调用child方法中的父方法吗?

正如您定义的工厂 -

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