- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 Ember 有一个记录器,但我想创建自己的用于学习目的。我有一个名为 logger 的服务,我希望能够在任何地方使用这个服务。将此服务注入(inject)到组件、 Controller 等中没有问题...我无法弄清楚如何将此服务注入(inject)到我创建的实用程序中,而无需通过 create 函数传递它。我不想在创建实用程序的任何地方都传递我的记录器。当我尝试将其注入(inject)对象时,它提示不在容器中。最好的方法是什么?
1 Câu trả lời
好的,了解 Ember.inject.service
Thực ra做什么 很重要!它就像一个较短的版本:
myService: Ember.computed({
get() {
return Ember.getOwner(this).lookup('service:myService);
}
}),
那么这个 getOwner
是什么?它为您提供对象的所有者。您的大多数对象(如模型、 Controller 、组件、 View 等)都是由依赖注入(inject) (DI) 容器创建的。要使类在 DI 容器上可用,它必须是 registered .
您的默认类(如 Controller 、路由、 View )由解析器自动注册。注册后可以inject当它们被容器创建时,它们会自动进入其他类。所有者也被注入(inject)到由容器创建的所有实例中。
因为容器本身是私有(private)的,所以这些公共(public) API 在应用程序上。 getOwner 也会返回应用程序。
如果您想手动查找容器上的实例,您可以使用 lookup .
对于您的实用程序类,您可能使用普通的 .create()
来获取对象。这当然不会自动将其耦合到您的应用程序,因此所有者不可用。自动注入(inject)也不起作用。
Bạn có thể sử dụng ownerInjection 手动注入(inject)所有者。 :
myClass.create(Ember.getOwner(this).ownerInjection(), {...});
Sau đó Ember.inject.service
将起作用,因为 getOwner 将返回注入(inject)的所有者。
您可以做的另一件事是在容器上注册实用程序对象,然后查找它们。然后自动注入(inject)所有者。
关于ember.js - Ember 将服务注入(inject) Ember 实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843461/
Tôi đang tìm hiểu tất cả các công nghệ cần thiết để xây dựng Ứng dụng trang đơn (SPA). Tóm lại, tôi muốn triển khai ứng dụng của mình dưới dạng các lớp riêng biệt, trong đó giao diện người dùng giao tiếp với giao diện quản trị chỉ bằng các dịch vụ web API (json qua socket.io). Phần đầu về cơ bản là
Khi tôi nhìn thấy ngày được lưu trữ trong cơ sở dữ liệu của mình. Đây là điều bình thường. Ngày tháng và thời gian chỉ có vậy. Nhưng khi tôi chạy yêu cầu get để lấy dữ liệu. Định dạng này khác với định dạng được lưu trữ trong cơ sở dữ liệu. Tại sao điều này lại xảy ra? Câu trả lời hay nhất tôi nghĩ bạn có thể
Hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời được hỗ trợ bởi các sự kiện, tài liệu tham khảo hoặc chuyên môn, nhưng câu hỏi này có thể gây ra tranh luận, tranh cãi, thăm dò ý kiến hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Tôi đang cố gắng triển khai một số mã bằng backbone.js và hogan.js (http://twitter.github.com/hogan.js/) Hogan.js được phát triển
Tôi đang tạo một ứng dụng web bằng Backbone.js, Node.js và Express.js và tôi muốn thêm chức năng cho người dùng (đăng nhập, đăng xuất, hồ sơ, hiển thị nội dung liên quan đến người dùng). Tôi dự định sử dụng Passport
đóng cửa. Câu hỏi này cần được hỏi một cách tập trung hơn. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện điều này không? Cập nhật câu hỏi để tập trung vào một vấn đề duy nhất bằng cách chỉnh sửa bài đăng này. Đã đóng 8 năm trước. Cải thiện câu hỏi này
Tôi đang cố gắng tải dữ liệu trong NodeJS rồi chuyển nó sang ExpressJS để hiển thị biểu đồ d3 trên trình duyệt. Tôi biết tôi có thể tải dữ liệu theo cách này - https://github.com/mbostock/q
Trong node.js, tôi thấy có 3 tên tệp giống nhau để mô tả điểm vào chính của ứng dụng: Khi sử dụng gói express-generator, tệp app.js được tạo làm điểm vào chính cho ứng dụng được tạo. Bởi n
Gần đây tôi có cơ hội xem lớp học tuyệt vời của John Papa về cách xây dựng ứng dụng trang đơn. Tôi muốn nó. Nó liên quan đến mọi khía cạnh của ứng dụng phía máy chủ và phía máy khách. Tôi thích phía khách hàng hơn. Trong quá trình triển khai, ông Papa có lớp sau ở phía máy khách:
Hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời được hỗ trợ bởi các sự kiện, tài liệu tham khảo hoặc chuyên môn, nhưng câu hỏi này có thể gây ra tranh luận, tranh cãi, thăm dò ý kiến hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Tôi là người mới học đồ họa và cần trợ giúp để hiểu chức năng của nhiều thư viện javascript 2D. . . Tôi nhận được gì từ Pixi.js mà tôi không nhận được từ các thư viện dựa trên Canvas như Konva? Tôi đến từ Konva
Tôi đang cố gắng xây dựng một số mã ÍT HƠN (thông qua ember-cli-less) vào một tệp CSS. 1) https://almsaeedstudio.com/ Tệp AdminLTE LESS 2) Bo
Đang cố gắng xem tất cả các phiên của tất cả người dùng đã đăng nhập trong Express Passport và hy vọng cũng có thể xem được người dùng hiện đang đăng nhập. Cách tốt nhất và nhanh nhất là gì? Tôi đang nghĩ có lẽ tôi có thể làm điều này khi đăng nhập và đưa cơ sở dữ liệu mô hình người dùng "trực tuyến"
Tôi có một ứng dụng React nhưng tôi cần chạy một số mã js phía máy khách sau khi một thành phần tải xong. Sau khi hàm render hoàn tất và được tải, cách tốt nhất để chạy js tương tác với DOM là gì, chẳng hạn như $('div').mixItUp() . Phải
Vui lòng cho tôi biết cách tải tệp lên máy chủ express.js phía máy khách bằng bodyparser.raw() // ... onFilePicked(file) { const url = 'upload/a
Tôi đang cố gắng di chuyển từ Grunt sang Gulp. Dự án chạy tốt trên Grunt, vậy nên có lẽ tôi đã làm sai điều gì đó trong Gulp. Mọi tác vụ khác đều hoạt động ngoại trừ tập lệnh. Tôi mệt mỏi khi phải thêm và chú thích các phần rồi. Tôi liên tục nhận được những điều bất ngờ
Tôi đang cố gắng đổi tên trang web của mình. Không tìm thấy nơi tôi có thể đặt tiêu đề hoặc tên ứng dụng. Câu trả lời hay nhất Bạn có thể tạo bất kỳ tệp nào trong thư mục config/, ví dụ config/app.js với nội dung sau: module.expor
Sau nhiều năm phát triển PHP/MySQL trên máy chủ, tôi đang cố gắng khám phá các công nghệ mới để xây dựng các ứng dụng web hiện đại. Tôi đang cố gắng sắp xếp tất cả nội dung JavaScript và nếu tôi hiểu rõ, một giải pháp hiệu quả có thể là phục vụ
Tôi mới làm quen với Nodejs. Tôi có app.js và index.js trong thư mục tuyến đường. Tôi có một ứng dụng.use(multer....). Tôi cũng đã định nghĩa app.post('filter-re
Tôi đang sử dụng mẫu Angular-seed để xây dựng ứng dụng của mình. Ban đầu, tôi đặt toàn bộ mã JavaScript của mình vào một tệp, main.js. Tệp này chứa khai báo mô-đun, bộ điều khiển, chỉ thị, bộ lọc và
Tôi là một lập trình viên xuất sắc, rất giỏi!