2013-12-12 28 views
6

Câu hỏi noob tại đây. Làm cách nào để tránh xung đột tên chỉ thị giống nhau khi tôi đang sử dụng các mô-đun bên ngoài. Hiện tại tôi đang sử dụng mô-đun angular bootstrap, nhưng đã tải xuống một module chỉ để sử dụng băng chuyền từ đó thay thế. Cả hai đều có cùng một chỉ thị tên carousel và nó gây ra cho tôi vấn đề nếu tôi bao gồm cả hai trong các mô-đun của tôi.angularjs cùng một tên chỉ thị xung đột

var app = angular.module('text', ['fundoo.directives', 'ui.bootstrap']); 

Giải pháp tốt nhất cho điều này là gì?

+0

tôi đã cùng một vấn đề với một chỉ thị tùy chỉnh gọi là 'phù hợp' mâu thuẫn với một trong boostrap góc. Tôi đã đổi tên các chỉ thị của mình bằng tiền tố của dự án để đảm bảo chúng là duy nhất. –

+1

[UI Bootstrap] (http://angular-ui.github.io/bootstrap/) cho phép bạn xây dựng phiên bản của riêng bạn chỉ với các mô-đun bạn cần. Hoặc chỉ cần đổi tên chỉ thị 'carousel' thành một thứ khác trong một trong các thư viện của bạn. – Stewie

+0

Bạn có thể làm rõ "gây ra sự cố cho tôi" không? –

Trả lời

1

Nếu bạn chỉ có một xung đột tên giữa các chỉ thị, hãy liệt kê mô-đun với băng chuyền bạn muốn sử dụng làm phụ thuộc đầu tiên. Từ my test Tôi kết luận rằng các chỉ thị bổ sung có cùng tên sẽ bị bỏ qua (đầu tiên sẽ thắng).

1

Nếu tôi là bạn Tôi muốn sử dụng tiền tố cho chỉ thị/dịch vụ/v.v. của riêng tôi, đó là những gì tôi đã làm gần đây và tôi không gặp phải bất kỳ sự cố nào.

Ngoài ra, chỉ cần đổi tên chỉ thị được đề cập thành một chi tiết dài hơn hoặc cụ thể hơn.

5

Trên thực tế tất cả các chỉ thị được thực hiện, bạn có thể cấu hình tự thực hiện với priority paramenter

Ưu tiên:

Khi có nhiều chỉ thị xác định trên một phần tử DOM duy nhất, đôi khi nó là cần thiết để chỉ định thứ tự trong đó các chỉ thị được áp dụng. Ưu tiên được sử dụng để sắp xếp các chỉ thị trước khi các hàm biên dịch của chúng được gọi. Mức độ ưu tiên được định nghĩa là một số. Các chỉ thị có ưu tiên số lớn hơn được biên dịch trước. Các chức năng Pre-link cũng được chạy theo thứ tự ưu tiên, nhưng các hàm post-link được chạy theo thứ tự ngược lại. Thứ tự của các chỉ thị có cùng mức độ ưu tiên là không xác định. Các ưu tiên mặc định là 0.

Và bạn cũng có thể cho góc để ngăn chặn sự tiêu hóa chỉ thị trong phần tử hiện bất cứ khi nào bạn tìm thấy một chỉ thị rằng có terminal tham số setted để true

https://docs.angularjs.org/api/ng/service/$compile

Vẫn còn những giải quyết về việc tạo ra các ưu tiên phức tạp hơn một chút đối với vấn đề, vì vậy tôi sẽ dính vào @nico 's soluction

và ngoài ra, đây là một plunker để kiểm tra rằng góc thực hiện cả hai

http://plnkr.co/edit/e66I71UKp5mnurcjVzN4

+0

Cảm ơn @Fardin về phong cách (; – aemonge

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