我想拥有一个基础工厂(或服务),其他服务可以共享方法。
这是否可能有角度,如果是这样,怎么样?
答案 0 :(得分:0)
工作人员:
http://plnkr.co/edit/guObDjeLUYCEsp4omusX?p=preview
阅读本文:
https://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/
工厂和服务只是功能,因此香草javascript中的相同模式同样适用。
app.controller('MainCtrl', function($scope, foobar) {
$scope.name = 'World';
$scope.fb = new foobar();
});
app.factory('foo', function() {
var Foo = function() {};
Foo.prototype = {
doFoo: function(x) {
return x + 3;
}
}
return Foo;
});
app.factory('bar', function() {
var Bar = function() {};
Bar.prototype = {
doBar: function(y) {
return y * 2;
}
}
return Bar;
});
app.factory('foobar', function(foo, bar) {
var FooBar = function() {};
angular.extend(FooBar.prototype, foo.prototype);
angular.extend(FooBar.prototype, bar.prototype);
// Anything else you want to do
// ...
return FooBar;
});
一个模板:
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<p>Foo {{fb.doFoo(1)}}</p>
<p>Bar {{fb.doBar(4)}}</p>
</body>