state.go不改变页面

时间:2016-11-23 14:28:43

标签: angularjs ionic-framework

更新

当state.go的指令从

执行url chenge时

http/localhost:8100/login.html

进入

http/localhost:8100/login.html#/main.html

我正在开发一个应用程序并使用$state.go();它不会改变页面,我已经使用控制台进行了快速调试,但我没有收到任何错误。 我也试过$location.path();,结果是一样的。 在我尝试在登录后更改页面的那一刻,所以从login.html到main.html在同一个文件夹中 这是我的代码:

angular.module('starter', ['ionic', 'ui.router'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
})


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

    .state('login', {
    url: '/login',
    //abstract : true, // Because your are have child-states under de 'splash' state, you should set it abstract : true;
    templateUrl: '/login.html',
    controller: "LogiCtrl"
  })

    .state('main', {
        url: "/main",
        templateUrl: "templates/main.html",
    })
}])


.controller('LoginCtrl', function($scope, $http, $state, $ionicHistory) {
    $scope.data = {};
    $scope.data.funzione = "login";
    $scope.submit = function(){
        console.clear();
        console.log("Dentro funzione");
        console.log($scope.data.funzione);
        var link = 'http://localhost/<path>/api.php';
        $http.post(link, {mail : $scope.data.mail}, {pwd : $scope.data.pwd}, {funzione : $scope.data.funzione})
            .then(function (res){
                console.log("Dentro http.post");
                $scope.response = res.data;
                console.log($scope.response);
                if ($scope.response != "F"){
                    console.log("Dentro if");
                    $state.go('main');
                } else {
                    console.log("Dentro else");
                }
            });
    };
});

修改

我怎样才能解决这个问题?

感谢的

2 个答案:

答案 0 :(得分:0)

在您的配置中,将LogiCtrl更改为LoginCtrl

编辑再次在您的配置中,将login.html更改为templates/login.html,因为您说它们位于同一文件夹中。

答案 1 :(得分:0)

您确定您的login.html不在templates文件夹中。 我认为它应该是这样的:templateUrl: 'templates/login.html',