【发布时间】:2014-07-10 09:55:00
【问题描述】:
我正在尝试找到一种以角度扩展服务的方法。我不确定 Angular 是否有扩展的概念,或者它是否仅仅依赖注入来重用代码。所以到目前为止我尝试过的如下
方法一
myApp.factory('myFactory', function ($http) {
return{
common: function(){
console.log('I am from myFactory');
}
});
myApp.factory('myFactory1', function (myFactory) {
return {
common: myFactory.common
};
});
或
myApp.factory('myFactory1', function (myFactory) {
return angular.extend(myFactory, {
common: function() {
console.log('I am form Factory1')
}
});
});
这两种方法都可以,但我的主要问题是如何给父母打电话。即这样的事情:
在 myFactory1 中
common: function(){
console.log('I am from myFactory1');
this.prototype.common.apply(this, arguments);
}
我想要打印出 'I am from myFactory1', 'I am from myFactory'
通常这在 angular 中是否支持?或者我应该采取不同的方法来扩展/继承功能?
谢谢
【问题讨论】:
-
如果它符合您的要求,请继续。 angularjs 服务是单例的。所以你应该更喜欢组合而不是继承。
-
所以不能调用同名的父函数?
标签: javascript angularjs oop extend angularjs-service