【问题标题】:AngularJS ng-repeat + ng-click+ dynamic filterAngularJS ng-repeat + ng-click+ 动态过滤器
【发布时间】:2016-06-16 18:55:57
【问题描述】:

我是 AngularJS 的新手,我在这里遇到了这个问题,我想这可能很简单,但我还没有成功

我有一个过滤器garageFilter,它从数组中搜索一个数字,然后我使用 ng-repeat 从我通过 input[type:number] 字段创建的 Obj [] 创建一个动态的 li 标签。

每个 li 标签都应该有一个带有这个garageFilter 过滤器的 ng-click 事件,当我点击这个 li 标签时,它必须根据过滤器中的项目编号搜索一个元素。 我已经让这个过滤器与视图中的一个 li 标记元素很好地配合,但是这个过滤器不像我需要的其他一个那样动态创建

<li data-ng-click="garageFilter={level:3}">Level 3</li>

对于动态 li 标签我已经尝试过了

<li data-ng-repeat="level in levelNum track by $index" ng-click="garageFilter={level:{{level}}">Level {{level}}</li>

html 会创建这个&lt;li data-ng-repeat="level in levelNum track by $index" ng-click="garageFilter={level:5}" class="ng-binding ng-scope"&gt;Level 5&lt;/li&gt;

但过滤器不起作用..

谁能帮帮我??请 谢谢各位!

【问题讨论】:

  • &lt;li data-ng-repeat="lvl in levelNum track by $index" ng-click="garageFilter={level:lvl}"&gt;Level {{lvl}}&lt;/li&gt;.
  • 你好迈克尔,它不能那样工作..它不会在点击时进行提取或过滤
  • 你几乎是对的迈克尔,只剩下一件事,将它作为函数传递;还是谢谢
  • 发布您的解决方案作为答案,它可能会在未来对其他人有所帮助。

标签: angularjs filter angularjs-ng-repeat


【解决方案1】:

四处寻找,我找到了正确的方向。正如我所读:

问题是因为 ng-repeat 为每个 迭代。你写的是迭代范围

所以最好的面对方法是创建一个函数而不是手动分配

就我而言:

在应用中

 $scope.myGarageFilter = function(value){
      $scope.garageFilter = {level:value};
    }

html

 <span ng-repeat="lvl in levelNum">
    <li ng-click="myGarageFilter(lvl.num)">Level {{lvl.num}}</li>
 </span>

而不是:

<li ng-click="garageFilter={level:4}">Level 4</li>

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2014-10-04
    相关资源
    最近更新 更多