2013-01-11 39 views
10

Làm thế nào để truy cập một phương pháp tĩnh từ một phương pháp thể hiện trong mongoose?Làm thế nào để truy cập một phương pháp tĩnh từ một phương pháp thể hiện trong mongoose?

Tôi có một mô hình công việc có tên là Công việc. Từ một phương thức instance.start, tôi muốn gọi phương thức tĩnh là Job.someStatic(). Làm thế nào để tôi có được tham chiếu đến công việc, từ "điều này" trong phương pháp dụ?

nhờ

Trả lời

21

Cách duy nhất tôi đã tìm thấy để làm điều đó quát (không chỉ kêu gọi Job.someStatic()) là:

this.model(this.constructor.modelName).someStatic(); 

Cập nhật nhờ @ numbers1311407:

I don' t biết nếu nó luôn luôn như vậy, nhưng ít nhất là Mongoose 3.6.11, bạn có thể rút ngắn điều này thành:

this.constructor.someStatic(); 

Mongoose 4.x Cập nhật

này vẫn hoạt động trong 4.4.12.

+0

oh, thật xấu xí ... Nhưng đây là những gì tôi đang làm: khi tôi tạo các mô hình, tôi đặt một phương thức trên chính mô hình đó. (Job.abc = function() {}) Tôi nghĩ điều này là tĩnh. Có cách nào khác để chuyển một hàm vào một cá thể không? –

+0

Tại sao bạn không thêm hàm đó vào 'statics' của lược đồ thay vào đó? – JohnnyHK

+0

Tôi không có quyền truy cập vào tĩnh đó. Nhưng phương pháp của bạn hoạt động quá .. Tôi muốn một cái gì đó ngắn hơn sintax, nhưng tôi có thể sống với nó. Nếu bạn nghĩ đến điều gì đó nhỏ gọn hơn, tôi vui mừng khi nghe –

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