我正在试图弄清楚如何设置变量并在全局范围内使用它。在全球范围内,我只是指
行为很简单。单击“gotologin”div时,必须显示登录表单。注册部分同样如此。
但似乎我在ng-show指令中使用的变量与我使用.value
和控制器定义的变量不同。它们都必须相同。
<div class="choose-box" ng-controller="mainController as mcontrol">
<div class="gotologin" ng-click="mcontrol.gotologin()">Login</div>
<div class="gotoregister" ng-click="mcontrol.gotoregister()">Register</div>
</div>
<div class="login-form" ng-show="loginclicked === true">
...
</div>
<div class="register-form" ng-show="registerclicked === true">
...
</div>
<script>
var app = angular.module('myapp', ['ngRoute']);
app.value("loginclicked" , false);
app.value("registerclicked" , false);
app.controller('mainController', function(loginclicked,registerclicked){
this.gotologin = function (){
loginclicked = true;
};
this.gotoregister = function (){
registerclicked = true;
};
});
</script>
答案 0 :(得分:0)
您需要将app值注入控制器,如依赖项。
我会这样做:
var app = angular.module('myapp', ['ngRoute']);
app.value('loginInfo', {
loginclicked: false,
registerclicked: false
});
app.controller('mainController', mainController);
mainController.$inject = ['$scope', loginInfo];
function mainController($scope,loginInfo){
$scope.loginInfo = loginInfo;
this.gotologin = function (){
$scope.loginInfo.loginclicked = true;
};
this.gotoregister = function (){
$scope.loginInfo.registerclicked = true;
};
}
Html将为<div ng-show="loginInfo.registerclicked">
和<div ng-show="loginInfo.loginclicked">