繁体   English   中英

如何在angularjs上注册$ rootScope上的函数

[英]How to register a function on $rootScope on angularjs ready

我需要在angularjs中注册一个可用的方法。 此方法有2个参数(资源ID,删除成功时的回调),它使用资源提供程序实际删除该项。

然后注册它,我需要angularjs注入$rootScopeMyResourceProvider 我的第一个想法是在我的主页控制器中执行此操作:

var HomeCtrl = function ($rootScope, MyResourceProvider) {
        $rootScope.confirmAndDeletePackage = function (sId, fCallback) {
            // do some stuff
            MyResourceProvider.delete({id: sId}, fCallback);
        }
    }

这开始实际上是我的问题。 这在常规导航(主页 - >列表 - >选择 - >删除)中工作正常但如果用户直接访问删除按钮可用的页面而不通过主页,则此方法将不可用(因为HomeController尚未初始化)...

所以,我的问题是我在哪里可以移动这段代码,以确保它始终在应用程序引导程序中执行。

我试过myApp.config()但没有成功......

任何的想法?

正如@ganaraj在评论中提到的,服务可能是更好的选择。

但是,要回答您的问题,您可以使用run()方法。

myApp.run(function($rootScope, MyResourceProvider) {
    $rootScope.confirmAndDeletePackage = function (sId, fCallback) {
        // do some stuff
        MyResourceProvider.delete({id: sId}, fCallback);
    }
})

加载所有模块后调用run()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM