Filtre dynamique au sein de ng-repeat dans AngularJS

Pour mon application AngularJS j'ai une ng-repeat dans une ng-repeat:

Html:

<div ng-app="myApp">
    <div ng-controller="myController">
        <h2>working filter</h2>
        <div ng-repeat="category in categories">
            <h3>{{category}}</h3>
            <div ng-repeat="item in items | filter:{price.red: 0} ">{{item.name}}</div>
    </div>

        <h2>broken filter</h2>
        <div ng-repeat="category in categories">
            <h3>{{category}}</h3>
            <!-- price[category] should be red, blue, yellow, depending on the category in the ng-repeat -->
            <!-- price[category] should be bigger then 0 (or not zero, negative values will not occur) -->
            <div ng-repeat="item in items | filter:{price[category]: 0} ">{{item.name}}</div>
        </div>

    </div>
</div>

Javascript:

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

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

    $scope.categories = ['red', 'blue', 'yellow'];
    $scope.items = [
        {name: 'one', price:{red: 0, blue: 1, yellow: 3} },
        {name: 'two', price:{red: 2, blue: 0, yellow: 0}},
    ]    

});

Veuillez consulter mon jsFiddle http://jsfiddle.net/hm8qD/

Alors, j'ai couru en deux problèmes:

  1. Le filtre n'accepte pas les crochets [] je ne peux donc pas faire le filtre dynamique, en fonction de la catégorie
  2. Le filtre doit retourner les articles qui ont un prix[catégorie] supérieure à zéro.

Pour le plus grand zéro je pouvais juste faire un filtre personnalisé. Cependant, comme je sais que les filtres ne pas accepter les paramètres, donc je n'ai aucun moyen de l'obtention de la catégorie (rouge, bleu ou jaune).

Veuillez noter que ceci est une version simplifiée de mon code et ce contexte ne pourrait pas faire le meilleur de sens. J'espère avoir été clair dans l'explication de ce que j'ai besoin du filtre pour le faire, puisque je suis nouveau sur AngularJS.

Pouvez-vous vider votre tentative dans un jsFiddle?
la syntaxe pour filtre: item in items | filter:filterCriteria
Oui Violon veuillez
J'ai ajouté un jsFiddle: jsfiddle.net/hm8qD
ici, vous allez 🙂 jsfiddle.net/hm8qD

OriginalL'auteur DivZero | 2013-05-17