gpt4 book ai didi

Angularjs - 装饰 Controller

转载 作者:行者123 更新时间:2023-12-03 06:53:08 27 4
gpt4 key购买 nike

我正在尝试为我的 Controller 设置一个装饰器。我的目的是在我的应用程序中的所有 Controller 中引入一些常见的行为。

我已将其配置为在 Angular 1.2.x 中工作,但从 1.3.x 开始有一些重大更改破坏了代码。现在得到的错误是“ Controller 不是函数”

下面是装饰器的代码:

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 模块中有 decorator方法,不再需要 $provide.decorator

对于猴子修补 API,最好使用参数,而不是显式枚举它们,这样破坏的可能性要小得多。

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);
};
});

关于Angularjs - 装饰 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com