【问题标题】:How to hide a link by using Id's?如何使用 ID 隐藏链接?
【发布时间】:2017-02-01 11:23:23
【问题描述】:

在我的应用程序中,我使用 ID 隐藏了一些链接。在加载页面时,数据库调用将去选择所有 Id。在下面的示例代码中,ID 只不过是 ID。

 <ul id="menu-content">           
      <li><a href="HomePage" id="HomeId"><spring:message code="label.home"/></a></li>
      <li><a href="loginPage" id="loginPageId"><spring:message code="label.login" /></a></li>
      <li><a href="define" id="defineId"><spring:message code="label.define" /></a></li>
 </ul>

我将使用以下代码隐藏链接。 AngularJS 控制器

 'use strict';
app.factory('actionToPerform',['$http', function($http) {

    return {
        getCustomMenus: function($scope,data) {

            angular.forEach(data, function(key,value) { 
                angular.forEach(key, function(k,v) {    

                        var id=k.Identification;

                        var div = document.getElementById(id);
                        if(div !== null){
                        if (div.style.display !== 'none') {
                            div.style.display = 'none';
                        }
                        }
                });


            });

            return "Hello, World!";
        }
    };

 }]);

但我的新要求是我只想显示在 onload 函数中出现的 Id。在 onload 函数中我会得到一两个 Id 不是全部。 如果我得到一个 ID,那么我只想显示该链接,其他链接需要隐藏。我该如何继续。提前致谢。

【问题讨论】:

  • 您要隐藏的 div 在哪里?
  • 默认隐藏所有内容,仅显示检索到的内容。而不是反过来。
  • 您可以隐藏所有 div,并在第二种方法中只显示您需要使其可见的那些
  • div 是一个变量。我将隐藏
  • 标签的(链接)而不是 div 的
  • 先更正你的问题,然后学习如何提问。
  • 标签: javascript angularjs spring


    【解决方案1】:

    您可以使用 AngularJS 的 E2E 绑定轻松完成。例如使用ng-hide。 AngularJS 非常特殊,它提供了诸如 E2E 绑定之类的功能。这样你就不需要像以前那样进行 DOM 注入了。

    我还从 DOM 中删除了属性 id。使用 AngularJS 方式时不需要它们。

    这是一个如何使用 AngularJS 实现显示/隐藏某些元素的示例。在这种情况下,需要按下按钮来隐藏元素。您还可以通过注入 $scope 参数(如 $scope.toggleMenuItem('homeId'))来隐藏控制器或其他函数中的元素。

    查看

    <div ng-app="myApp">
        <div ng-controller="testController">
            <ul id="menu-content">
                <li><a href="HomePage" ng-hide="menuState.homeId"><spring:message code="label.home"/></a></li>
                <li><a href="loginPage" ng-hide="menuState.loginPageId"><spring:message code="label.login" /></a></li>
                <li><a href="define" ng-hide="menuState.defineId"><spring:message code="label.define" /></a></li>
            </ul>
    
            <button ng-click="toggleMenuItem('homeId')">Toggle menu entry 1</button>
            <button ng-click="toggleMenuItem('loginPageId')">Toggle menu entry 2</button>
            <button ng-click="toggleMenuItem('defineId')">Toggle menu entry 3</button>
        </div>
    </div>
    

    AngularJS 应用程序/控制器

    var myApp = angular.module('myApp',[]);
    
    myApp.controller('testController', ['$scope', function($scope) {
        $scope.menuState = {
            homeId: false,
            loginPageId: false,
            defineId: false,
         };
    
        $scope.toggleMenuItem = function (menuId) {
          if (angular.isDefined($scope.menuState[menuId])) {
             $scope.menuState[menuId] = !$scope.menuState[menuId];
          }
        }
    }]);
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签