如何使用 ng-click 在块内呈现内容?

How to render content inside the block with ng-click?

我在前端设置了下拉按钮,现在我必须在单独的 content 块中显示我的数组,只有当下拉项被选中时。

我该怎么做?

这是我的 plunker

HTML

<div ng-controller="DropdownCtrl">

    <div class="row">
      <div class="col-md-12">
        <ul class="content">
          <li ng-repeat= 'task in tasks'>

          </li>
        </ul>
      </div>
    </div>

    <!-- Here goes dropdown menu !-->

  <div class="btn-group" dropdown="" is-open="status.isopen">
  <button id="single-button" type="button" class="btn btn-default btn-xl" dropdown-toggle="" ng-disabled="disabled">
        Options <span class="caret"></span>
      </button>

      <ul class="dropdown-menu" role="menu" aria-labelledby="single-button">
        <li role="menuitem">
          <a href="javascript:void(false)" ng-click="show('tasks')">Display tasks</a>
        </li>
      </ul>

    </div>
  </div>

Js

var myApp = angular.module('myApp', ['ui.bootstrap']);

myApp.controller('DropdownCtrl', function ($scope) {

  $scope.tasks =  [
    {title:'First Task'},
    {title: 'Second Task'}
  ];

});

我建议您在每个任务元素中添加 selected 属性,这将显示当前元素是否已被选中。在此基础上,您可以在 selected 上进行过滤,同时在 tasks 上执行 ng-repeat

标记

<div class="col-md-12">
    <div ng-show="filteredTask.length > 0">Below are selected Tasks</div>
    <div ng-show="filteredTask.length == 0">No task selected</div>
    <ul class="content">
      <li ng-repeat= 'task in filteredTask = ( tasks | filter : {selected: true})'>
      {{task.title}}
      </li>
    </ul>
</div>

<ul class="dropdown-menu" role="menu" aria-labelledby="single-button">
    <li role="menuitem" ng-repeat="task in tasks">
      <a href="javascript:void(false)" ng-click="task.selected = !task.selected">{{task.title}}</a>
    </li>
</ul>

Demo Plunkr