Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive(rails)和;有棱角的_Ruby On Rails_Angularjs_Devise_Ionic Framework - Fatal编程技术网

Ruby on rails 使用Desive(rails)和;有棱角的

Ruby on rails 使用Desive(rails)和;有棱角的,ruby-on-rails,angularjs,devise,ionic-framework,Ruby On Rails,Angularjs,Devise,Ionic Framework,我目前有一个移动应用程序,您可以在其中创建问题,并查看其他人在您所在位置周围创建的问题列表 移动应用程序正在与rails服务器对话并正确创建问题,我已经介绍了rails&Desive的身份验证 在我的controllers/app.js文件中,我存储了一个本地变量isLoggedIn,默认设置为false。加载应用程序时,我检查变量是否为true,如果为true,则将用户发送到app.issues。否则,用户将被发送到app.auth.login $scope.$storage = $local

我目前有一个移动应用程序,您可以在其中创建问题,并查看其他人在您所在位置周围创建的问题列表

移动应用程序正在与rails服务器对话并正确创建问题,我已经介绍了rails&Desive的身份验证

在我的
controllers/app.js
文件中,我存储了一个本地变量
isLoggedIn
,默认设置为false。加载应用程序时,我检查变量是否为true,如果为true,则将用户发送到
app.issues
。否则,用户将被发送到
app.auth.login

$scope.$storage = $localStorage.$default({
  isLoggedIn: false
});

$scope.$watch('$storage.isLoggedIn', function() {
    if ($scope.$storage.isLoggedIn){
      console.log('is logged in');
      $state.go('app.issues');
    }
    else {
      console.log('isnt logged in');
      $state.go('app.auth.login');
    }
  });
这是我的
js
文件夹中的root
app.js
文件

angular.module('orangecone', ['ionic', 'orangecone.controllers', 'orangecone.services', 'ngCordova', 'ngStorage', 'ngResource'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });
})

.value('Constants', {
  serverUrl: 'http://localhost:3000/'
})

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

  $httpProvider.defaults.withCredentials = true;

  $stateProvider

  // setup an abstract state for the tabs directive
    .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  })

  .state('app.issues', {
    url: '/issues',
    views: {
      'app-issues': {
        templateUrl: 'templates/issues.html',
        controller: 'IssuesCtrl'
      }
    }
  })

  .state('app.issue', {
    url: '/issues/:issueId',
    views: {
      'app-issues': {
        templateUrl: 'templates/issue.html',
        controller: 'IssueCtrl'
      }
    }
  })

  .state('app.auth', {
    url: '/auth',
    abstract: true,
    templateUrl: 'templates/auth/tabs.html'
  })

  .state('app.auth.login', {
    url: '/login',
    views: {
      'login': {
        templateUrl: 'templates/auth/login.html',
        controller: 'AuthCtrl'
      }
    }
  })

  .state('app.auth.register', {
    url: '/register',
    views: {
      'register': {
        templateUrl: 'templates/auth/register.html',
        controller: 'AuthCtrl'
      }
    }
  })


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

});
我有一种逐渐减弱的感觉,我忽略了一些相当琐碎的事情。即使rails服务器被擦除并且系统中根本没有用户,应用程序也始终会登录到console.logs
。应用程序应该将用户重定向到
app/auth/login
,但决不这样做。每当我在浏览器中键入此URL时,它也会将我重定向到
app/issues
页面


如有任何想法或意见,将不胜感激

如果您在前端使用API集成,那么最好使用而不是
designe
gem
designe\u-token\u-auth
也是
designe
,尽管对
designe
进行了一些修改以使其与API一起工作