javascript - Angular 面板替换为单击事件

标签 javascript angularjs twitter-bootstrap

我有以下带有 Bootstrap 的 Angular 应用程序:这是 plunker

<div class="panel col-lg-3 col-md-3 col-sm-2">
            <div class="" id="menu">

                <div ng-controller="mylistcontroller" class="" id="menu">               
                <br/>
                <h4><font color=#636363>My Academic Programs</font><button id="tooltip1" type="button" class="btn btn-default pull-right" data-toggle="tooltip" data-placement="right" data-original-title="Add a Program"><span class="glyphicon glyphicon-plus-sign pull-right"></span></button></h4>

                <div ng-repeat="prog in programs" class="list-group">

                    <a ng-repeat="list in prog.programstaken" href="#" class="list-group-item">

            {{list.program}}<span class="badge badge-info pull-right">{{list.completed}} / {{list.required}}</span>
            <progressbar class="progress-striped active" max="list.required" value="list.completed" type="{{getProgressType(list)}}">{{getPercentage(list)}}%</progressbar>

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

        </div>

当我点击我的学术类(class)旁边的+按钮时,我希望应用程序替换其旁边显示Tier 1的面板-.. 带有一个新面板,其中包含 app.jsprogramlist 中提到的 json 中的类(class)列表下拉列表。我该如何处理这个问题?

最佳答案

当您单击加号图标时,设置一个变量来控制哪个面板可见:

ng-click="display.addprogram = true"

然后使用 ng-show 切换 Tier 1-.. 面板的可见性:

<div ng-show="!display.addprogram" ...> ...

创建另一个面板来保存下拉菜单,并再次使用 ng-show 但条件相反:

<div ng-show="display.addprogram" ...> ...

然后在此面板内创建下拉列表。这是一个示例,其作用只是切换两个面板的可见性。您可能会创建一个函数,该函数实际上对选择执行某些操作,然后切换可见性。

<div class="btn-group">
  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
    Select <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu">
    <li ng-repeat="p in programs[0].programlist">
      <a ng-click="display.addprogram = false">{{p.program}}</a>
    </li>
  </ul>
</div>

这是一个工作演示:http://plnkr.co/edit/gcnuuMUct5ghOkaIX6cF?p=preview

注意 - 我将两个 Controller 合并为一个,以便两个 Controller 都可以轻松访问 display.addprogram 变量。

关于javascript - Angular 面板替换为单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161742/

相关文章:

javascript - 如何使用 .val() 将 var 设置为 true 或 false

javascript - 如何使用 Three.JS 通过单键按下制作动画

javascript - Flexslider - 单击图像前进到下一张幻灯片

javascript - x.controller 和 .controller 之间的区别

javascript - 带过滤器的 Bootstrap 表 - zebra css

javascript - jQuery 模糊 div 不在焦点

angularjs - 未捕获的 TypeError : Object [object global] has no method 'onGoogleReady' using angular-ui's ui. 映射到 Angular.js

javascript - AngularJS $http.get 和 ngRoute 如何列出详细信息

twitter-bootstrap - 如何创建一个按钮组,其中一个按钮具有下拉菜单?

javascript - 无法使用 asp.net Web 表单中弹出的 Bootstrap 模式将数据发布到数据库