在ng-click中切换过滤器和属性

时间:2016-04-04 14:01:47

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

当用户点击ng-click时,我需要删除链接中的过滤器和标题属性。

再次用户点击ng-click我需要在链接中添加过滤器和标题属性。

HTMl:

<div ng-app="myApp" ng-controller="myCtrl" ng-init="names=['Jani','Hege','Kai']">

<p ng-click="toggleFilter()">Toggle Filters</p>
      <ul>
        <li ng-repeat="x in names">
          <a href="#" title="{{x}}">{{ x | limitTo: 2 }} {{x.length < 2 ? '' : '...'}} </a>
        </li>
      </ul>

</div>

任何人都可以帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

我不明白你的过滤器到底在做什么,但这就是我要做的事情:

的index.html

<p ng-click="toggleFilter()">Toggle Filters</p>
<li ng-if="filter == true" ng-repeat="name in names">
  <a>...</a>
</li>
<li ng-if="filter == false" ng-repeat="name in names">
  <a>...</a>
</li>

ctrl.js

$scope.toggleFilter = function() {
  ($scope.filter == "true") ? '$scope.filter == "false"' : '$scope.filter == "true"'
}

这里有一组列表项,当$ scope.filter为true时显示,一组列表项在$ scope.filter为false时显示。您可以在$scope.filter == true部分编写您想要显示的名称的自定义逻辑(看起来您没有问题),并将$scope.filter == false部分保留为标准ng-repeat。我认为三元运算符的语法几乎是正确的,但我没有检查它。