我在使用bower的应用程序中包含了 angular-bootstrap 库。
我目前正在使用包含错误的(旧)版本,该版本已在较新版本中解决。但是,在我的情况下,升级尚不可能。
我还想过在我的index.html
页面中在bower的importlines下面添加一个自定义修改的js文件,但是会发生编译错误。
我确切知道包含库{.1}}的.js中错误的正确LOC,但这些更改在该文件中不合适,因为我在自动构建系统中开发,只会覆盖我的变化。
因此,我想覆盖我调用错误功能的地方(控制器或页面服务)中的函数。
这甚至可能吗?如果是这样,我怎样才能最好覆盖它呢?
答案 0 :(得分:2)
您可以为要更改的方法创建装饰器。
假设您的工厂如下所示
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;
});
});
答案 1 :(得分:2)
在github上分叉angular-bootstrap
,进行所需的更改,并使用bower.json
中的git网址,如:
{
"dependencies": {
"angular-bootstrap": "git@github.com:yourgithubuser/angular-bootstrap.git"
}
}