我正在开发一个使用优秀UI Bootstrap library的应用程序。一切正常,但是我在IE10上打破崩溃插件时遇到了bug。我正在使用主导航的崩溃插件,这个破坏是一个非常大的问题,所以我需要找到解决方法。
我真的不想破解主库。似乎我应该能够使用找到here或here或here的方法来装饰这个第三方指令,但我似乎无法让它工作。
具体来说,我试图覆盖置于collapse指令的link()函数中的extend()函数来检查IE10浏览器。
有没有人这样做过或者知道怎么做?
答案 0 :(得分:18)
当然!您可以修饰指令并对其进行扩展或完全覆盖它。这是一个很棒的blog post on this
最直接的方法就是:
app.config(function($provide) {
$provide.decorator('collapseDirective', function($delegate) {
var directive = $delegate[0];
var link = function myLinkFnOverride(scope, element, attrs) {
// code here...
}
directive.compile = function() {
return function(scope, element, attrs) {
link.apply(this, arguments);
};
};
return $delegate;
});
});
将完全覆盖原始链接功能(需要复制粘贴所有内容并更改您想要的部分)