覆盖ui-bootsrap

时间:2016-06-28 15:02:41

标签: javascript angularjs

我在使用bower的应用程序中包含了 angular-bootstrap 库。

我目前正在使用包含错误的(旧)版本,该版本已在较新版本中解决。但是,在我的情况下,升级尚不可能

我还想过在我的index.html页面中在bower的importlines下面添加一个自定义修改的js文件,但是会发生编译错误。

我确切知道包含库{.1}}的.js中错误的正确LOC,但这些更改在该文件中不合适,因为我在自动构建系统中开发,只会覆盖我的变化。

因此,我想覆盖我调用错误功能的地方(控制器或页面服务)中的函数

这甚至可能吗?如果是这样,我怎样才能最好覆盖它呢?

2 个答案:

答案 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"
  }
}