当通过ng-click功能单击按钮时,不要在Angular JS中移动另一个页面



下面的代码,我会尽力而为,但我没有得到任何答案,当点击按钮时,另一个页面不会打开......

.HTML

   <button class="button button-small button-block button-positive sign-up" 
           type="button" 
           name="button" 
           ng-click="signUp()">
       Sign up
   </button>

应用.js

  .config(function($stateProvider, $urlRouterProvider)
  {
       $stateProvider
     .state('home',{
                url:'/home',
                abstract:true,
                templateUrl:'templates/home/home.html',
                controller:'LoginCtrl'
              })
      .state('home.login', {
      url: '/login',
      views:{
        'home':{
                  templateUrl: 'templates/home/login.html',
                  controller: 'LoginCtrl'
               }
            }
  })
  .state('home.signup',{
    url: '/signup',
    view:{
      'signup':{
                  templateUrl: 'templates/home/signup.html',
                  controller:'RegisterCtrl'
                }
        }
  })

控制器

.controller('LoginCtrl', function($scope, LoginService, $ionicPopup,$state,$location) {
     $scope.data = {};
     $scope.login = function() {
        LoginService.loginUser($scope.data.username, $scope.data.password)
            .success(function(data) {
                 $state.go( 'home.main' );
               })
            .error(function(data) {
                  var alertPopup = $ionicPopup.alert({
                        title: 'Login failed!',
                        template: 'Please check your username or password !'
                  });
            });
      }
   $scope.signUp = function(){
        $location.path('/home.signup');
    }
 })

服务

 angular.module('nt-wallet.services',[])
  .service('LoginService', function($q) {
    return {
    loginUser: function(name, pw) {
        var deferred = $q.defer();
        var promise = deferred.promise;
        if (name == 'ntt' && pw == 'fds') {
            deferred.resolve('Welcome ' + name + '!');
        }else if (name=='' && pw=='') {
            deferred.reject('Wrong credentials.');
        } else {
            deferred.reject('Wrong credentials.');
        }
        promise.success = function(fn) {
            promise.then(fn);
            return promise;
        }
        promise.error = function(fn) {
            promise.then(null, fn);
            return promise;
        }
        return promise;
    }
}
})

在上面的代码中,当我单击按钮时,下一页将无法打开..所以给我解决方案...我尝试了几个像 Location.href 一样,但它不起作用。

使用 $state.go('home.signup');$location.path('/home/signup'); 代替 $location.path('/home.signup');

编辑:最好使用 $state.go,因为您使用的是 ui.router。

您也可以使用 <button ui-sref="home.signup"> 代替控制器功能。

您正在使用$stateProvider所以不要使用$location重定向,您必须更改状态。

在你的控制器中做这样的事情 -

$scope.signUp = function(){
    $state.go('home.signup');
};

最新更新