我正在尝试为控制器设置装饰器。我的目的是在我的应用程序中的所有控制器中引入一些常见的行为。
我已将其配置为在Angular 1.2.x中工作,但是从1.3.x开始有一些重大更改正在破坏代码。现在得到的错误是“控制器不是功能”。
以下是装饰器的代码:
angular.module('myApp', ['ng'], function($provide) {
$provide.decorator('$controller', function($delegate) {
return function(constructor, locals) {
//Custom behaviour code
return $delegate(constructor, locals);
}
})
});
Angular 1.2.x- http://jsfiddle.net/3v17w364/2/(正在工作)
Angular 1.4.x- http://jsfiddle.net/tncquyxo/2/(已损坏)
在Angular 1.4.x模块中具有装饰器方法,$provide.decorator
不再需要。
对于猴子修补API,总是最好使用arguments
而不是显式枚举它们,否则它被破坏的机会要少得多。
angular.module('myApp', ['ng']).decorator('$controller', function ($delegate) {
return function (constructor, locals) {
var controller = $delegate.apply(null, arguments);
return angular.extend(function () {
locals.$scope.common = ...;
return controller();
}, controller);
};
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句