javascript - ionic 侧菜单中的异步工厂

标签 javascript angularjs angular-ui-router ionic-framework

我正在为我的移动应用程序使用 ionic 框架 我需要的是,当我单击侧面菜单链接时,我希望工厂服务从服务器获取数据

现在发生的情况是,当应用程序运行时,只有一个 http 请求发送到服务器,但是当我单击侧面菜单中的任何链接时,没有发送任何请求

myapp.factory('Authy',function ($cookieStore,Auth,$http,$q) {

    return {
     can_go :function(){
               var deffered = $q.defer();
          $http.get(mainUrl+"/user_info.json")
                .success(function(data){
              deffered.resolve(data);
          }).error(function(){
             deffered.reject(); 
          });
             return deffered.promise;      
     }
    }


    });

在我的 Controller 中

      myapp.controller("PowerCtrl",function($scope,Authy ,$cookieStore,$http ){
                  $scope.view_loading = true;
                   Authy.can_go().then(function(data){
     $scope.view_loading = false;
    if (data.user){
        var user = data.user;

        if ((user.country !="") && (user.city != "")) {
           $scope.coins = user.coins
              $scope.id =user.id
        $scope.current_vip =user.current_vip;
         $scope.vip_time =user.vip_time;


        }else{

         window.location.href="#/step2";     
        }
    }else{

     window.location.href="#/login";   
    }


 });

              });

我的路由器

myapp.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

  .state("main",{
      url: "/",
      templateUrl: "templates/main.html",
      controller: "MainCtrl"
  })

  .state("login",{
      url: "/login",

      templateUrl: "templates/login.html",
      controller: "LoginCtrl"

  })
   .state("register",{
      url: "/register",

      templateUrl: "templates/register.html",
      controller: "RegisterCtrl"      
  })
 .state("step2",{
      url: "/step2",
      templateUrl: "templates/step2.html",
      controller: "StepCtrl"
  })


  .state('app', {
    url: "/app",
    abstract: true,
    templateUrl: "templates/menu.html",
    controller: 'AppCtrl'
  })

  .state('app.home', {
    url: "/home",
    views: {
      'menuContent': {
          controller: "HomeCtrl",

        templateUrl: "templates/home.html"
      }
    }
  })

  .state('app.power', {
    url: "/power",
    views: {
      'menuContent': {
          controller : "PowerCtrl",
        templateUrl: "templates/power.html"
      }
    }
  });

  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/');
});

最佳答案

您必须在 View 上禁用缓存,默认情况下启用它,例如:

<ion-view cache-view="false" view-title="My Title!">
  ...
</ion-view>

了解有关缓存的更多信息 here

关于javascript - ionic 侧菜单中的异步工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795715/

相关文章:

javascript - 为什么 Electron renderer.js 文件中没有定义文档?

javascript - 如何使用php和ajax将Canvas元素保存到png文件?

javascript - 使用 $http.get 从 AngularJS 中的 URL 读取 JSON

javascript - Angular UI Router - $stateParams 有属性但无法访问它们

javascript - Angular 2、TypeScript 和 ui-router - 如何获取状态参数

javascript:执行 http post 并在另一个页面/选项卡上查看其响应的好方法是什么?

javascript - 通过 Axios 从 Express.js 服务器下载 XLSX 不起作用

javascript - 将服务条件注入(inject) AngularJS Controller 的最佳实践

javascript - AngularJS 未知提供商 : $routeProviderProvider

angularjs - Angular ui-router 状态未加载