我有一个单页角应用程序。着陆页是一个登录表单,其中包含指向注册表单的链接。在用户通过身份验证之前,应用程序的其余部分不可见。我使用ng-switch指令交换登录和注册页面。因此,当加载登录表单并且用户单击“注册”按钮时,ng-switch指令会对signin部分的注册部分进行切换。我需要执行“createAccount()”函数并在提交注册表单时将ng-switch切换回signin部分。这可能吗?现在,当我点击提交时,它只是执行ng-switch并忽略createAccount()位。
<body ng-controller="MainCtrl">
<div ng-switch on="view.controller">
<div ng-cloak class="ng-cloak" ng-switch-default ng-controller="UserCtrl">
<div ng-show="!isAuthenticated">
<form class = "form-signin">
<div class="control-group">
<div class="controls">
<br />
<input type="text" ng-model="username" placeholder = "Email Address" >
</div>
<br />
<div class="controls">
<input type="password" ng-model="password" placeholder = "Password" >
</div>
<div class="controls">
<button class = "btn btn-primary" ng-click="signIn()">Sign In</button>
<button class = "btn btn-default" ng-click= "view.controller = 'AccountNewCtrl'" >Register</button>
</div>
</div>
</form>
</div>
<!--Start of sign up form-->
<div ng-switch-when="AccountNewCtrl" >
<div ng-controller = "AccountNewCtrl" >
<div ng-cloak class="ng-cloak" ng-show="!isAuthenticated">
<div class="page-header">
<h1>Sign Up<br />
</div>
<div class="col-xs-6">
<form id = "myForm" name="myForm" ng-submit="createAccount()">
//Form input code here
//On clicking this button, the createAccount() function should happen and then the ng-click event should happen
<button type="submit" ng-click= "view.controller = 'UserCtrl'" class="btn btn-small btn-primary">Register</button>
</form>
</div>
</div>
答案 0 :(得分:1)
在你的createAccount()函数中,你可以做到
$scope.$parent.view.controller = 'UserCtrl';
这样,您就不需要在注册表单上的提交按钮上添加ng-click
。