我已经搜索了我的问题的答案,并且不确定为什么我的ng-click没有为我发送ng-show消息。
我有我的控制器功能:
$scope.showLogoutMessage = function() {
$scope.logoutmsg = true;
};
我的登录页面html:
<input id="j_password" type="password" name="j_password" class="form-control input-lg" placeholder="Password" ng-model="loginData.j_password" required />
<small style="color:red;" class="error" ng-show="logoutmsg">
You have been logged out.
</small>
然后我从另一个jsp页面开始这个ng-show:
<li><a ng-controller="LoginController" id="logout" href="javascript;;"
ng-click="showLogoutMessage()">Log Out</a></li>
我已在控制器中注销了消息,并且输出了值&#39; logoutmsg&#39;设置得很好,但由于某种原因,我只是没有显示我的信息。有人有什么想法吗?
答案 0 :(得分:0)
您编写的第一个代码是否在同一个控制器(LoginController)中。如果不是
为该控制器命名
<input id="j_password" type="password" name="j_password" class="form-control input-lg" placeholder="Password" ng-model="loginData.j_password" required />
<div id='message' ng-controller='MesssageCtrl' >
<small style="color:red;" class="error" ng-show="logoutmsg">
You have been logged out.
</small> </div>
然后
$scope.showLogoutMessage = function() {
angular.element(document.getElementById('message')).scope().logoutmsg = true;
};
如果这样可行,那么你可以尝试在上面的函数中添加一行
angular.element(document.getElementById('message')).scope().$apply()