require.js
nêu rõ cách xác định đối tượng bên trong mô-đun với cách define([requiremens], object)
là cách tốt nhất.Yêu cầu js ruins chuyển hướng mã
Vì vậy, mỗi trang, hoặc các tệp js khác, sẽ làm require()
gọi và nhận mô-đun làm tham số.
Điều này hoạt động khá tốt, mỗi chức năng/mô-đun có không gian tên riêng.
Vấn đề là tôi có:
// AJAX/Requests.js
define(['UI/Message'],function(Message){
var Requests={
checkResponse:function(response){
//1==ok
//0==error
//2==good message
//3==good message, but still stop
if(response.status==1){
return true;
}
else if(response.status==2){
Message.good(response.message);
return true;
}
else if(response.status==3){
Message.good(response.message);
return false;
}
else{
Message.bad(response.message);
return false;
}
}
};
return Requests;
});
Bây giờ UI/tin nhắn được định nghĩa theo cách tương tự, và nó sẽ trả về đối tượng. Nhưng khi tôi chỉnh sửa tập tin với yêu cầu, tôi không thể điều hướng theo mã, vì vậy nếu tôi muốn chỉnh sửa đối tượng Tin nhắn, cách duy nhất là đi và mở tập tin bản thân và tìm chức năng tôi cần, thay vì có IDE nhảy đến đó cho tôi.
Có một số giải pháp cho pycharm cụ thể hoặc với require.js chung để giải quyết vấn đề này không? Khi bạn có nhiều mã, nó trở thành một mớ hỗn độn để điều hướng nó, đó là lý do tại sao tôi sử dụng một IDE ngay từ đầu!
Và điều tồi tệ hơn: Trình chỉnh sửa không bao giờ biết những đối tượng chức năng nào có!
Một giải pháp có thể tôi có thể thấy là không sử dụng không gian tên kèm theo và khai báo biến toàn cục trước cuộc gọi define()
, nhưng trong trường hợp này tất cả các đối tượng sẽ được gọi là UI_Message, AJAX_Requests. Để chắc chắn, tôi không có một số Thư ở hai địa điểm khác nhau ....
Và tôi không chắc chắn, nếu trình tối ưu hóa require.js sẽ sử dụng chính xác điều này. Tài liệu của Require.js nói rõ ràng, để tránh xa các biến toàn cầu.
Điều này đã được khắc phục chưa? – singsuyash