离子控制按钮

时间:2015-04-08 18:24:03

标签: controller ionic-framework ionic

我和我的控制器一直遇到了一些问题,我想确保我对他们理解正确。

我有两个按钮,可以链接到他们的控制器

<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');
    })

他们是登录按钮工作的原因,注册不是吗?

2 个答案:

答案 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');
    };
})