2013-05-24 24 views
5

Chúng tôi đang cố gắng tìm hiểu xem có cách nào để xóa/thay thế/ghi đè một tập hợp các chỉ thị tạm thời trong khi ở chế độ 'xem trước' hay không.Xóa chỉ thị khỏi mô-đun trong Angular

Chúng tôi đã cố gắng loại bỏ các mô-đun (s) mà chỉ được chứa trong, ví dụ .:

angular.module('myModule', []); 

nhưng các chỉ thị vẫn còn hoạt động.

Có ai giúp được không?

Trả lời

1

Thay thế, hãy cân nhắc đặt chế độ xem trước vào từng chỉ thị. Vượt qua một thuộc tính để cho biết trạng thái hiện tại là xem trước hay 'sống' và điều kiện hóa mẫu chỉ thị bằng ng-switch.

Các hương vị khác nhau, nhưng cảm giác đó giống như một cách tiếp cận dễ đọc hơn với tôi hơn là xác định lại chỉ thị khi đang di chuyển.

+0

Thật không may, chúng tôi có rất nhiều chỉ thị và chúng tôi sẽ lặp lại logic chuyển đổi trong tất cả chúng. Nó sẽ cảm thấy sạch hơn để đối phó với tất cả ở một nơi. –

+0

Hmm. Hiểu. Các phiên bản thay thế (chế độ xem trước) của bạn có tĩnh không? Điều này có thể được thực hiện bằng cách chơi trò chơi với vị trí của các mẫu chỉ thị? (Chẳng hạn như bằng cách sử dụng templateUrl trong định nghĩa chỉ thị và làm cho đường dẫn động) –

+0

Tôi có thể thấy cách giải pháp đó có thể hoạt động, nhưng nó cảm thấy như nhiều nỗ lực hơn là chỉ dừng các chỉ thị đi và sau đó đưa chúng trở lại sau đó. –

5

Góc nội bộJS tạo nhà máy từ chỉ thị, bằng cách thêm hậu tố vào tên chỉ thị. Vì vậy, bạn có thể vô hiệu hóa các chỉ thị bằng cách thay thế các nhà máy với các nhà máy noop.

var noopDirective = function() { return function() {}; }; 
if (previewMode) { 
    // Disable ngPaste directive 
    angular.module('myModule') 
     .factory('ngPasteDirective', noopDirective); 
} 

Đảm bảo đây là mã được thực thi cuối cùng.

+0

Tuy nhiên, điều này vô hiệu hóa chỉ thị 'ngPaste' nói chung, không chỉ là chỉ thị bên trong mô-đun' myModule'. Ví dụ, giả sử rằng tôi cũng định nghĩa một 'ngPaste' chỉ thị trong module' mod2'. Sau đó, mã trên sẽ không chỉ vô hiệu hóa 'ngPaste' chỉ thị trong' myModule', mà còn là chỉ thị 'ngPaste' trong' mod2'. Làm thế nào tôi chỉ có thể vô hiệu hóa 'ngPaste' chỉ thị trong một mô-đun (và cũng giữ phần còn lại của các chức năng) và giữ cái khác? BTW, chỉ thị mà tôi muốn vô hiệu hóa nằm trong thư viện lớn của bên thứ ba, trong đó tôi không muốn duy trì phiên bản đã sửa đổi. – Rockallite

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