我使用 Bower 在我的应用程序中包含了 angular-bootstrap 库。
我目前使用的(旧)版本包含一个错误,该错误已在较新版本中解决。但是,在我的情况下,尚无法升级。
我也想过在我的index.html
页面的bower的importlines下面添加一个自定义修改的js文件,但是编译出错。
我确切地知道在库 ui-bootstrap.js
的 .js 中包含错误的正确 LOC,但这些更改不适合该文件,因为我在自动构建系统中开发那只会覆盖我的更改。
因此,我想在我调用错误函数的地方(页面的 Controller 或服务)覆盖函数。
这可能吗?如果是这样,我怎样才能最好地覆盖它?
最佳答案
你可以为你想要改变的方法创建一个装饰器。
假设你的工厂如下图所示
app.factory('myService',function(){
return {
getData: function() {
// your code
}
};
});
现在如果你想改变 getData() 函数的功能,你可以像下面那样做
app.config(function($provide) {
$provide.decorator('myService', function($delegate) {
var oldFunc = $delegate.getData;
$delegate.getData = function() {
// your updated code
return oldFunc();
};
return $delegate;
});
});
关于javascript - 从 ui-bootstrap 覆盖一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079792/