Tôi cần đăng ký một phương thức có sẵn ở mọi nơi trong angularjs. Phương thức này có 2 đối số (id tài nguyên, gọi lại khi xóa thành công) và nó sử dụng nhà cung cấp tài nguyên để thực sự xóa mục đó.
Sau đó, để đăng ký, tôi cần angularjs tiêm cho tôi $rootScope
và MyResourceProvider
. Ý tưởng đầu tiên của tôi là làm điều đó trong bộ điều khiển trang chủ của tôi:
var HomeCtrl = function ($rootScope, MyResourceProvider) { $rootScope.confirmAndDeletePackage = function (sId, fCallback) { // do some stuff MyResourceProvider.delete({id: sId}, fCallback); } }
Đây thực sự là vấn đề của tôi. Điều đó hoạt động tốt trong điều hướng thông thường (home -> list -> select -> delete) nhưng nếu người dùng truy cập trực tiếp trang có nút xóa có sẵn trên trang chủ, phương thức này sẽ không khả dụng (vì HomeController chưa được khởi tạo) ...
Vì vậy, câu hỏi của tôi là nơi tôi có thể di chuyển đoạn mã này để đảm bảo nó luôn được thực hiện tại trình khởi động ứng dụng.
tôi đã cố gắng trên myApp.config()
nhưng w/o thành công ...
Bất kỳ ý tưởng?
Tại sao bạn không thể thực hiện điều này trong dịch vụ và tiêm dịch vụ đó ở mọi nơi bạn có nút xóa và gọi chức năng được yêu cầu trên dịch vụ đó? – ganaraj
Bởi vì bạn đã không nói với tôi trước :)! thx, tôi di chuyển trong một dịch vụ và tôi có thể nhận được nó ở khắp mọi nơi tôi cần và nó hoạt động tốt! – poussma