通过ng-click功能单击按钮时,不要在角度js中移动另一页

时间:2016-03-18 10:32:33

标签: angularjs

以下代码,我将尽我所能,但我没有得到任何答案,当点击按钮,以便另一页不会打开...

HTML

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

app.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,但它不起作用。

2 个答案:

答案 0 :(得分:2)

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

编辑: 最好使用$ state.go,因为你正在使用ui.router。

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

答案 1 :(得分:0)

您正在使用 $ stateProvider ,因此请勿使用 $ location 重定向,您必须更改状态。

在您的控制器中执行类似的操作 -

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