Angular JS - 带有 ul-li 元素作为单选按钮和复选框的自定义指令

Angular JS - custom directive with ul-li elements as radio buttons and checkboxes

这是我编写的一小段代码,我认为它可能会对正在寻找类似功能的人有所帮助:

li 元素上的自定义指令 - 单击它们 select/unselect li 元素并在数组中生成 selected 对象(可以在控制器下收集)

    <div ng-app="myApp" ng-controller="myCtrl">

  <ul>
    <li>
      <input type="text" ng-model="search_ms.title" />
    </li>
    <li 
    ng-repeat="x in items | filter:search_ms" 
    multi-select multi-select-item="x" 
    ng-class="{selected:x.checked}" 
    ng-click="getAllSelectedItems(items)">
      {{x.title}} --> {{x.checked}}
    </li>
  </ul>

  <ul>
    <li>
      <input type="text" ng-model="search_ss.title" />
    </li>
    <li 
    ng-repeat="x in items_ | filter:search_ss" 
    single-select 
    single-select-item="x" 
    unselect-all-items="items_" 
    ng-class="{selected:x.checked}" 
    ng-click="getAllSelectedItems(items_)">
      {{x.title}} --> {{x.checked}}
    </li>
  </ul>

<div class="clearfloat">
</div>


  <br/>
  <br/>
  <br/>

  <p>
  {{selectedItems}}
  </p>

  <br/>
  <br/>
  <br/>

  <p>
  {{unselectedItems}}
  </p>

JS Fiddle: http://jsfiddle.net/AjayBunga/NBhn4/230/

单select(如收音机)和多select(如复选框)均已实现。请建议我是否可以优化任何代码,或者是否可以以更简单的方式完成,因为我是 angular 指令的新手。

提前致谢。

而不是使用 ng-click 并通过超时捕获更改

这个答案帮助我编写了一个指令回调函数

AngularJS Directive Callback