以下代码,我将尽我所能,但我没有得到任何答案,当点击按钮,以便另一页不会打开...
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,但它不起作用。
答案 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');
};