miechooy
miechooy

Reputation: 3422

AngularJS filter by dropdown value

I have a problem with filter my data by category selected by dropdownlist.

Here how looks like my controller:

var category = {
    "Dairy": 1,
    "Bread": 2,
    "Drink": 3,
    "Spices": 4,
    "Meat": 5
}


$scope.categories = [
    { text: "All", value: 0 },
    { text: "Dairy", value: 1 },
    { text: "Bread", value: 2 },
    { text: "Drink", value: 3 },
    { text: "Spices", value: 4 },
    { text: "Meat", value: 5 }
];


$scope.products = [
    { name: "Milk", value: 3.28, avaible: true, expireDate: "2016-04-29", category: category.Dairy },
    { name: "Serek wiejski", value: 1.28, avaible: false, expireDate: "2016-04-26", category: category.Dairy },
    { name: "Coca-cola", value: 6.98, avaible: true, expireDate: "2017-04-29", category: category.Drink },
    { name: "Corn", value: 0.99, avaible: true, expireDate: "2016-09-19", category: category.Spices },
    { name: "Ham", value: 9.00, avaible: true, expireDate: "2016-04-29", category: category.Meat },
    { name: "Bread", value: 3.78, avaible: true, expireDate: "2016-04-29", category: category.Dairy }
];

Here is HTML

  <select ng-model="selectedCategory">
        <option ng-repeat="cat in categories" value="{{cat.value}}">
            {{cat.text}}
        </option>
    </select>

<div ng-repeat="product in products | filter: product.category == selectedCategory">

After I change value of dropdown the products are not being filtered. Just for id = 5 it works as expected.

Is condition product.category = selectedCategory wrong?

Upvotes: 0

Views: 1204

Answers (1)

Hadi
Hadi

Reputation: 17289

try this

 <div ng-repeat="product in products | filter:{category:selectedCategory}">

Upvotes: 1

Related Questions