Angularjs 在角度模式中的选项卡之间切换
我有一个登录名和一个以模式打开的注册表单。在顶部我有两个标签在登录和注册之间切换。看图 在选项卡之间切换工作正常。但是,我希望用户能够选择登录以及在我的实际页面上注册,并直接在右侧选项卡中打开模式 在main.controller中,我有:Angularjs 在角度模式中的选项卡之间切换,angularjs,twitter-bootstrap,angularjs-scope,bootstrap-modal,angularjs-ng-click,Angularjs,Twitter Bootstrap,Angularjs Scope,Bootstrap Modal,Angularjs Ng Click,我有一个登录名和一个以模式打开的注册表单。在顶部我有两个标签在登录和注册之间切换。看图 在选项卡之间切换工作正常。但是,我希望用户能够选择登录以及在我的实际页面上注册,并直接在右侧选项卡中打开模式 在main.controller中,我有: $scope.openLoggerMenu=function(){ $modal.open({ templateUrl: 'app/account/loggingNavigation.html',
$scope.openLoggerMenu=function(){
$modal.open({
templateUrl: 'app/account/loggingNavigation.html',
})
};
在我的html菜单中,我有:
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu()">
Login
</div>
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu()">
Signup
</div>
登录
报名
最后,模态的内容如下所示:
<div class="container loginContainer">
<div class="row">
<div class="col-sm-4 col-sm-offset-2 col-xs-6 col-md-4 col-md-offset-2 loggingModal loggings" ng-click="showSignup=false; " ng-class="{'activeLogging':!showSignup}">
Login
</div>
<div class="col-sm-4 col-xs-6 col-md-4 loggingModal loggings" ng-click="showSignup=true;" ng-class="{'activeLogging':showSignup}">
Sign Up
</div>
</div>
<login ng-show="!showSignup;"></login>
<signup ng-show="showSignup;"></signup>
</div>
登录
注册
当我现在单击打开登录模式时,它工作正常,我可以在选项卡之间切换。但是当我试图直接打开注册模式时,它只会打开登录窗口,从那里我可以切换到注册
你知道如何解决这个问题吗?两个选项:
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu(); showSignup=false;">
Login
</div>
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu(); showSignup=true;">
Signup
</div>
登录
报名
或者您可以通过传递适当的参数将逻辑放入函数中。一种解决方案是将作用域传递给
$modal.open(…)
:
angular.module(…).controller(…,函数($scope,$modal){
$scope.openLoggerMenu=函数(showSignup){
$scope.showSignup=showSignup;
$modal.open({
templateUrl:'app/account/loggingNavigation.html',
范围:$scope
})
};
});
登录
报名
参考我也这么认为。但是,它似乎仍然不起作用。出于某种原因,即使我在主控制器中设置了$scope.showSignup=true,我也从未将注册作为第一个选项。知道我错在哪里吗?好吧,为了调试,我建议观察
$scope.showSignup
的值,通过观察者或向视图中添加额外元素等,并在模式打开时确认其值。可能是其他代码将其值重置为false?可能是我在错误的范围内。打开模态控制器时,我不在模态控制器中,也不再在主控制器中。控制器?
angular.module(...).controller(..., function($scope, $modal) {
$scope.openLoggerMenu = function(showSignup){
$scope.showSignup = showSignup;
$modal.open({
templateUrl: 'app/account/loggingNavigation.html',
scope: $scope
})
};
});
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu(false)">
Login
</div>
<div class="col-md-1 loginButtonLanding" ng-click="openLoggerMenu(true)">
Signup
</div>