javascript - 调用父方法

标签 javascript angularjs

我有一些工厂:

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

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

最佳答案

But can I call parent method inside child method inside Angularjs factory?

正如您定义的工厂 -

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

关于javascript - 调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049585/

相关文章:

angularjs - 当 Modal 中有大量项目时,angular-ui-select 下拉列表的行为缓慢

javascript - 将日期和时间转换为当前毫秒 (JavaScript)

php - 如果 window.print 被取消,则阻止表单提交

javascript - Jquery 对话框不显示

javascript - 如何在 Protractor 中使用 browser.get()

angularjs - 如何使用 AngularFire 在 Firebase 中使用路由和用户身份验证?

javascript - Meteor 1.4.1.1 在添加 Angular 模板时抛出错误

javascript - 为什么我要使用 Redux Promise 中间件而不是 Redux Promise?

javascript - 如何使用从txt文件生成的jquery从下拉列表中选择一个值

javascript - Angular 过滤器-controllerAs 语法不起作用