2015-10-06 11 views
5

Trong Ember 2+, có ai biết cách tham khảo Cửa hàng Ember để khắc phục sự cố Ánh xạ mô hình trong bảng điều khiển javascript không?Cách truy cập Cửa hàng dữ liệu Ember từ bảng điều khiển?

Có thể thông qua App.__container__.lookup trong Ember 1, nhưng điều này không còn tồn tại nữa và thật khó để tìm tài liệu về điều này.

Cảm ơn

+0

Bạn không thể sử dụng Thanh tra Ember? – nem035

+0

Vâng, nó chỉ tốt cho các thực thể "bình thường" được nạp. Tôi đã có một mô hình mà không tải một cách chính xác (rất nhiều lĩnh vực null), tôi nghi ngờ một vấn đề lập bản đồ nhưng không có lỗi nhìn thấy trong giao diện điều khiển, vì vậy tôi muốn tự kích hoạt một tải cửa hàng. –

Trả lời

11

Nếu bạn nhìn vào package.json của bạn, bạn sẽ thấy một gói ember-export-application-global được cài đặt theo mặc định (nếu không, cài đặt nó). Thao tác này sẽ xuất ứng dụng của bạn sang đối tượng App toàn cầu, nhưng đối tượng toàn cầu được đặt tên sau ứng dụng của bạn. Vì vậy, bạn có thể có window.TodoList hoặc window.ShoppingCart thay vì window.App. Từ đó bạn có thể sử dụng dòng này (tương tự như Ember 1.xx):

AppName.__container__.lookup('service:store') 

Bạn cũng có thể làm những gì tôi làm và tạo ra một instance initializer cho nó:

export default { 
    name: 'store-on-app', 
    after: 'ember-data', 
    initialize(instance) { 
     const application = instance.container.lookup('application:main'); 
     const store = instance.container.lookup('service:store'); 
     application.set('store', store); 
    } 
} 

Sau đó, bạn có thể chỉ sử dụng AppName.store .

+0

Thật hoàn hảo. phải cài đặt gói vì đó là ứng dụng cũ đã được di chuyển. Cảm ơn bạn rất nhiều! –

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