javascript - 如何在 Angular js 中的 .run 方法内调用读取 json 文件的工厂?是否可能?

标签 javascript angularjs

我需要在 run 方法中调用工厂。是否可能? 工厂调用返回一个对象数组。 我的代码是:

 myApp.run(function($rootScope, $location, $route, AuthService) {
    $rootScope.$on('$routeChangeStart',
        function(event, next, current) {
            $rootScope.menuPermission = next.access.restricted
            /***Need to call a factory here***/
            AuthService.getUserStatus()
                .then(function() {
                    if (next.access.restricted && !AuthService.isLoggedIn()) {
                        $location.path('/login');
                        $route.reload();
                    }
                });
           });
   });

最佳答案

是的。您可以在 run 方法中调用工厂。

工厂:

myApp.factory('YourFactory', function(){
   var svc={};
   svc.getData = function(){
     //your processing logic
   } 
   return svc;
 });

运行方法:

myApp.run(function($rootScope, $location, $route, AuthService, YourFactory) {
$rootScope.$on('$routeChangeStart',
function(event, next, current) {
    $rootScope.menuPermission = next.access.restricted
    YourFactory.getData().then(function(){
     // do what you want here
    });
    AuthService.getUserStatus()
        .then(function() {
            if (next.access.restricted && !AuthService.isLoggedIn())
         {
                $location.path('/login');
                $route.reload();
            }
        });
});

关于javascript - 如何在 Angular js 中的 .run 方法内调用读取 json 文件的工厂?是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44387700/

相关文章:

javascript - 悬停样式和过渡不适用于 Firefox 中的附加元素

android - Android webview 中如何将 JSON 传递给 AngularJS?

javascript - 如何覆盖 $exceptionHandler 实现

java - 在 Tomcat Web 应用程序中重新加载页面时出现 404 错误

javascript - Angular js ng-禁用

javascript - RequireJS 使用 map 配置优化多页面应用程序

javascript - 编写重复函数的优雅方式

javascript - 在 .erb 文件中内联 <% f.submit %> 样式

javascript - 使用 JavaScript 正则表达式将数字 HTML 实体替换为其实际字符

angularjs - 如何将参数传递给 angular js 中的过滤器函数