2012-01-09 25 views
6

Tôi đang sử dụng tính năng kéo và thả trong ứng dụng của mình và nó hoạt động tốt.Activeadmin dừng hoạt động jQuery của tôi

Tôi sau đó thêm activeadmin và nó dừng hoạt động jquery của tôi.

tôi nhận được lỗi này

$(".draggable_article_image").draggable is not a function 

Nếu tôi loại bỏ dòng này từ active_admin.js

//= require active_admin/base 

nó bắt đầu hoạt động trở lại.

Bất kỳ ý tưởng nào?

Trả lời

9

Nếu bạn nhìn vào activeadmin base manifest file bạn sẽ thấy nơi tải jquery thêm được gọi. Cuộc gọi cuối cùng trong tệp kê khai cơ sở là tệp kê khai ứng dụng activeadmin. Do đó, có một cách dễ dàng để bỏ qua tải jquery bổ sung không mong muốn.

Thay đổi dòng này trong /app/assets/javascripts/active_admin.js bạn ứng dụng của:

//= require active_admin/base 

Để

//= require active_admin/application 

Bằng cách đó mã javascript hoạt động của admin sẽ được nạp mà không cần tải lại jquery.

Trong không gian quản trị /, quản trị viên đang hoạt động tải active_admin.js mà không tải ứng dụng.js, vì vậy bạn cũng cần tải app.js tại đó. Để làm việc, bạn cần phải tạo ứng dụng quản trị tải ứng dụng active.js trước active_admin.js. Thêm phần này vào config/initializers/active_admin.rb:

current_javascripts = config.javascripts.clone 
config.clear_javascripts! 
config.register_javascript 'application.js' 
current_javascripts.reverse.each{|j| config.register_javascript j} 

Tuy nhiên, lưu ý rằng đối này để làm việc liên tục, bạn có thể cần tất cả các tờ khai trong application.js của ứng dụng của bạn manifest:

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 

Cũng vì application.js đang được tải trong quản trị viên đang hoạt động, bạn cần tự quản lý mọi xung đột không gian tên.

+2

Đây là câu trả lời đúng, tôi tin tưởng. –

2

Bản phát hành Gem hiện tại của quản trị viên hiện hoạt có thêm bản sao jquery được bao gồm // // require active_admin/base, Nó đã gây ra rất nhiều vấn đề cho những người đã tham gia vào jquery trong ứng dụng của họ.

Xem yêu cầu kéo này trên ngọc quản trị hoạt động để biết chi tiết và giải pháp khả thi: Pull Request #468

-1

Tôi đã có một lỗi với đoạn code trên, vì vậy tôi chỉnh của tôi một chút:

hoạt động quản trị init:

config.clear_javascripts! 
    config.register_javascript 'admin/active_admin.js' 

    current_javascripts = config.javascripts.clone 
    config.clear_javascripts! 
    config.register_javascript 'application.js' 
    current_javascripts.each{ |j| config.register_javascript j } 

hoạt động quản trị js

//= require active_admin/base 

Vậy là xong!

2

Hãy thử di chuyển active_admin của bạn.js tệp vào thư mục nhà cung cấp/tài sản/javascripts của dự án Rails của bạn: bạn nên ổn.

Vui lòng cho chúng tôi biết nếu nó giúp ai đó!

Kính trọng

+0

Tôi yêu bạn !!!!!! Nó hoạt động –

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