将模块插入两个共享这些属性的模块中。
使用提供程序类覆盖属性或从任何范围实例化它们:
angular.module("stuff.things", []).provider("$things", function(){ var globalOptions = {}; this.options = function(value){ globalOptions = value; }; this.$get = [, function () { function Things(opts) { var self = this, options = this.options = angular.extend({}, globalOptions, opts); } Things.prototype.returnOptions = function(){ return this.options; }; return { things: function(opts){ return new Things(opts); } }; }];});秘诀:
$things.things().returnOptions()
angular.module('stuff.thing1', ['stuff.things']).provider("$thing1", function(){ var globalOptions = {}; this.options = function(value){ globalOptions = value; }; this.$get = ['$things', function ($things) { function Thing1(opts) { var self = this, options = this.options = angular.extend({}, $things.things().returnOptions(), globalOptions, opts); ... } return { thing1: function(opts){ return new Thing1(opts); } }; }];});


