javascript - 根据用户输入显示或隐藏元素

标签 javascript html angularjs

我想根据 URL 显示或隐藏选项卡(Tab3)。

演示:http://plnkr.co/edit/z4h5sfcaZLDXZ8xI7KDU?p=preview

示例)当用户登录应用程序 http://myURL.com 时,当用户输入 http://myURL.com/showAll 时,应显示前两个选项卡(Tab1、Tab2)并隐藏 Tab3。应显示所有选项卡(Tab1、Tab2、Tab3)。有关如何根据用户输入的 URL 路径显示或隐藏选项卡的任何输入?

示例代码:

<div ng-app="tabs" ng-controller="tabsctrl">
  <div>
    <div class="top-tabs"> 
      <!-- Nav tabs -->
      <ul class="nav nav-tabs" role="tablist">
        <li role="presentation" class="{{ tab.tabValue == activeModule? 'active':''}}" ng-repeat="tab in tabs">
          <a href="javascript:void(0)" ng-click="tabAction(tab.tabValue,tab.tabName)">{{tab.tabName}}</a>
        </li>
      </ul>

      <div class="tab-content">
        <div ng-if="tabName === 'Tab1'" role="tabpanel" class="tab-pane active" id="tab1">
          <div class="row">
             Tab1 contnet
            </div>
          </div>
        </div>

        <div ng-if="tabName === 'Tab2'" role="tabpanel" class="tab-pane active" id="tab2">
          <div class="row">
            <div class="col-sm-12">
             Tab2 data
              </div>
            </div>
          </div>
        </div>

          <div ng-if="tabName === 'Tab3'" role="tabpanel" class="tab-pane active" id="tab2">
          <div class="row">
            <div class="col-sm-12">
             This tab should be shown based on the URL path
          </div>
        </div>

      </div>
    </div>
  </div>
</div> 

最佳答案

您应该使用RouteProvider 和routeParams。

例如

$routeProvider.when('/yourView/:param1/:param2', {
  templateUrl: 'yourViewHTMLFile.html',    
  controller: 'yourController'
  });

现在,通过在 Controller 中注入(inject) n$routeParams 来获取 URL 中给出的 params 的值

.controller('yourController', ['$scope','$routeParams', function($scope, 
   $routeParams) {
        $scope.param1 = $routeParams.param1; // just as an example to model this in view
        var param2 = $routeParams.param2; //change here from param1 to 
        param2
        ...
    }]);

接下来很简单。只需根据值显示/隐藏选项卡即可。

例如

    <div id='tab1'>Tab1</div>
    <div id='tab2'>Tab2</div>
    <div id='tab3' ng-show='{{param1 =='testValue'}}'>Tab3</div>

关于javascript - 根据用户输入显示或隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532947/

相关文章:

javascript - 如果 URL 哈希发生变化,页面是否会显示不同的内容?

java - 使用 Html 或 JavaScript 在 Java 中滚动图像?

html - <table> 中的自定义单元格/边框间距

javascript - 尽管我使用具有正确语法的 ng-show,但类 ="ng-hide"会自动附加

angularjs - 单元测试 AngularJS 指令

python - 如何允许用户使用 HTTP 身份验证在 Angularjs 中登录 protected flask-rest-api?

javascript - 视频播放时停止 flexslider

javascript - 在页面加载时运行脚本

javascript - 如果元素显示 : none; in a media query are they loaded in still?

python - 使用 Angular JS 标签(例如 ng-view)从网络获取文本