AngularJS ng-单击不显示ng-show消息

时间:2015-01-24 16:21:49

标签: javascript html angularjs

我已经搜索了我的问题的答案,并且不确定为什么我的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;设置得很好,但由于某种原因,我只是没有显示我的信息。有人有什么想法吗?

1 个答案:

答案 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()