2015-03-08 30 views
6

Tôi đang làm việc trên một ứng dụng đang sử dụng xuất sắc UI Bootstrap library. Tất cả mọi thứ hoạt động tốt, nhưng tôi đã nhấn vào một bug với plugin thu gọn phá vỡ trên IE10. Tôi đang sử dụng các plugin sụp đổ cho nav chính và có điều này bị hỏng là một việc khá lớn, vì vậy tôi cần phải tìm một cách xung quanh nó.Ghi đè chức năng liên kết của chỉ thị

Tôi thực sự không muốn hack thư viện chính. Có vẻ như tôi phải có khả năng trang trí chỉ thị của bên thứ ba này bằng cách sử dụng các phương pháp được tìm thấy here hoặc here hoặc here, nhưng dường như tôi không thể làm việc đó.

Cụ thể, tôi đang cố gắng ghi đè hàm extend() nằm trong hàm liên kết() của chỉ thị thu gọn để thực hiện kiểm tra trình duyệt IE10.

Có ai đã làm điều này hoặc có ý tưởng về cách thực hiện việc này không?

Trả lời

16

Chắc chắn! Bạn có thể trang trí các chỉ thị và mở rộng nó hoặc hoàn toàn ghi đè nó. Dưới đây là một tuyệt vời blog post on this

thẳng Hầu hết con đường phía trước sẽ chỉ làm:

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

mà hoàn toàn sẽ ghi đè lên các chức năng liên kết ban đầu (sẽ cần phải sao chép dán tất cả của nó và thay đổi những phần bạn muốn)

+1

Tôi tin rằng đó là '$ supply.decorator ('collapseDirective', ...);' thay vì '$ supply.decorator ('thu gọn', ...);' –

+0

@KennyKi yeap, bạn hoàn toàn đúng. Tôi đã cập nhật câu trả lời. – masimplo

+0

Nhận xét thực sự đã giúp :) – jemiloii

Các vấn đề liên quan