我和我的控制器一直遇到了一些问题,我想确保我对他们理解正确。
我有两个按钮,可以链接到他们的控制器
<button class="button button-block button-positive" ng-click="signIn(user)">
Sign-In
</button>
<button class="button button-block button-positive" ng-click="signUp(user)">
Sign-Up
</button>
我的app.js中有两个控制器
.controller('SignInCtrl', function($scope, $state) {
$scope.signIn = function(user) {
console.log('Sign-In', user);
$state.go('welcome');
};
})
.controller('SignUpCtrl', function($scope, $state) {
$scope.signUp = function(user) {
console.log('Sign-In', user);
$state.go('welcome');
};
})
,stateProvider为
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('signin', {
url: '/sign-in',
templateUrl: 'templates/sign-in.html',
controller: 'SignInCtrl'
})
.state('welcome', {
url: '/welcome',
templateUrl: 'templates/welcome.html'
})
$urlRouterProvider.otherwise('/sign-in');
})
他们是登录按钮工作的原因,注册不是吗?
答案 0 :(得分:0)
假设两个按钮都在sign-in.html中,问题在于你的app.js中你将SignInCtrl列为登录控制器而SignInCtrl不包含signUp()方法。
如果两个按钮都在同一页面上,为什么不将signUp()添加到SignInCtrl并删除SignUpCtrl控制器?
答案 1 :(得分:0)
这些函数具有相同的$state.go
所以我改了一个。我不确定这是你想要的最坏情况,你可以切换两个。在我看来,这是一个简单的疏忽(;
.controller('SignInCtrl', function($scope, $state) {
$scope.signIn = function(user) {
console.log('Sign-In', user);
$state.go('signin');
};
})
.controller('SignUpCtrl', function($scope, $state) {
$scope.signUp = function(user) {
console.log('Sign-Up', user);
$state.go('welcome');
};
})