【问题标题】:AngularJS ng-repeat certain filter expressionsAngularJS ng-repeat 某些过滤器表达式
【发布时间】:2015-06-19 17:38:56
【问题描述】:

这是我所拥有的:

<div data-ng-if="hasSelectedCompany">
   <tbody data-ng-repeat="driver in result.applications | filter: { name: selectedApplication } track by $index">
</div>
<div data-ng-if="hasSelectedSupportedCompany">
   <tbody data-ng-repeat="driver in result.applications | filter: { name: selectedSupportedApplication } track by $index">
</div>

而且我知道这可以改进,但我不确定如何改进。它现在不工作。当我有这两个时,第一个表达式不起作用。当我完全删除第二个表达式时,第一个表达式开始起作用。第二个适用于他们两个。

有什么替代方法可以做到这一点?

谢谢!

【问题讨论】:

  • 你能提供 jsfiddle jow 的 plunker 它不工作吗?

标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-filter


【解决方案1】:

两个过滤器不能一起工作,因为它们都指向同一个result.applications

您需要通过将过滤后的数组分配给不同的变量来分离两者

标记

<div data-ng-if="hasSelectedCompany">
   <tbody data-ng-repeat="driver in applicationsForCompany = (result.applications | filter: { name: selectedApplication }) track by $index">
</div>
<div data-ng-if="hasSelectedSupportedCompany">
   <tbody data-ng-repeat="driver in applicationsForSupportedCompany =  (result.applications | filter: { name: selectedSupportedApplication }) track by $index">
</div>

【讨论】:

  • 非常感谢您的回复。有没有办法让这个工作与共享变量一起工作?我在这下面有一些逻辑,我正在根据第一个结果进行另一个 ng-repeat。
  • 第一个似乎仍然不起作用,除非我删除第二个表达式。
【解决方案2】:
<html ng-app="app">

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="https://code.angularjs.org/1.4.0/angular.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-controller="mainCtrl">
    <input type="text" ng-model="search">
    <input type="text" ng-model="search1">
    <div ng-repeat="d in data|filter:{name:search}">{{d.name}}</div>
    <div ng-repeat="d in data|filter:{name:search1}">{{d.name}}</div>
  </body>

</html>

angular.module('app',[]).controller('mainCtrl',['$scope',function($scope){
  $scope.data = [{id:1,name:'cata',surname:'obreja'},{id:2,name:'dani',surname:'popa'},{id:3,name:'Sir',surname:'dani'}];
}]);

这是一个有效的示例,但我不确定它是否是您正在寻找的。 这是plnkr http://plnkr.co/edit/W7ZofMcZMKTfw3BUB4jX?p=preview

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多