Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Ionic framework 如何在弹出确认后导航到其他页面_Ionic Framework - Fatal编程技术网

Ionic framework 如何在弹出确认后导航到其他页面

Ionic framework 如何在弹出确认后导航到其他页面,ionic-framework,Ionic Framework,我正在尝试在ionic for mobile应用程序中创建一个登录页面,在用户输入一些ID和密码后,它将导航到另一个页面。我尝试使用state.go和location.path,但不起作用。代码如下: angular.module('app.controllers', ['ionic','ui.router']) .controller('loginCtrl', function($scope, $ionicPopup, $state) { $scope.data ={}

我正在尝试在ionic for mobile应用程序中创建一个登录页面,在用户输入一些ID和密码后,它将导航到另一个页面。我尝试使用state.go和location.path,但不起作用。代码如下:

    angular.module('app.controllers', ['ionic','ui.router'])
    .controller('loginCtrl', function($scope, $ionicPopup, $state) {
    $scope.data ={};
    $scope.submitData = function(){

    if($scope.data.email && $scope.data.password){
        var alertPopup = $ionicPopup.alert({
            title: "Login Succesful",
            template: "Welcome Back "
        });
        $state.go('stateHome');
    }else{

        var alertPopup = $ionicPopup.alert({
            title: "Login Failed",
            template: "Please check your credentials"
        });
    }
    }
    })
    app.config(function($stateProvider, $urlRouterProvider) {
      $stateProvider
        .state('stateHome', {
        url: '/Home',
        views: {
        'Home' :{
        templateUrl : "templates/Home.html",
        controller : 'HomeCtrl'

        }
        }
    });

      $urlRouterProvider.otherwise('/Setting');


    })
My app.js包含:

    angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives'])

    .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.Keyboard) {
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
    // org.apache.cordova.statusbar required
    StatusBar.styleDefault();
    }
    });
    })

你知道如何解决这个问题吗?

试着按如下方式修改你的文件。它应该会起作用。如果你感到困惑,我可以详细说明

app.js

angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives'])

.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.Keyboard) {
            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }
        if(window.StatusBar) {
        // org.apache.cordova.statusbar required
            StatusBar.styleDefault();
        }
    });
})

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

    $stateProvider

    .state('stateHome', {
        url: '/Home',
        templateUrl: 'templates/Home.html',
        controller: 'HomeCtrl'
    })

$urlRouterProvider.otherwise('/Setting');
})
controllers.js

angular.module('app.controllers', [])

.controller('loginCtrl', function($scope, $ionicPopup, $state, $location) {

    $scope.data ={};
    $scope.submitData = function(){

    $scope.goToHomePage = function () {
        $location.path("/Home");
    };

      if($scope.data.email && $scope.data.password){
         var alertPopup = $ionicPopup.alert({
            title: "Login Succesful",
            template: "Welcome Back "
         });    
         alertPopup.then(function(res) {
            if(res) {
               $scope.goToHomePage();
             } else {
               console.log('Do something else');
             }
          });

      }else{

           var alertPopup = $ionicPopup.alert({
              title: "Login Failed",
              template: "Please check your credentials"
          });
        }
      }
   })

我尝试了你的建议,但仍然,在我进入登录页面并输入电子邮件和密码后,弹出的“登录成功”被执行,但页面仍然在登录页面而不是主页中,知道我可能缺少的部分吗?我想我看到了你的问题。您的目录结构是什么样子的?你有app.js吗?如果是的话,你能把它贴出来吗?我可以看到这一行是向前的->
app.config(函数($stateProvider,$urlRouterProvider)
看起来不合适,除非你只是把它们贴在你的控制器下面。我的目录结构看起来像一个普通的目录结构,它是appname,然后在里面有钩子插件scss www,在www里面是js、img、lib、template等等。基本上这就是我们使用CLI从creator ionic下载它时得到的东西.我确实有一个app.js.所以在你上面的代码中,
angular.module('app.controllers',['ionic','ui.router'])
到你的代码的一半(你有
})
在它自己的控制器模块中吗?剩下的(
app.config(function($stateProvider,$urlRouterProvider){
在你的
app.js
中)是吗?好的。我现在编辑我的答案,让你看看它应该是什么样子。