<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.28/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="productApp" ng-controller="productController">
<input ng-model="query" ng-trim="true">
<span>Finding: </span><span>{{ query }}</span>
<div ng-repeat="product in products | productsFilter: query">
<strong>{{ $index }}</strong>
<span>{{ product.name }}</span>
<span>{{ product.price | currency: '$'}}</span>
</div>
</body>
</html>
// Code goes here
angular.module('productApp', [])
.controller('productController', ['$scope', function ($scope) {
$scope.query = '';
$scope.products = [
{
name: 'gloves',
price: 12.4
},
{
name : 'helment',
price: 27.9
},
{
name: 'shoes',
price: 399
}
];
}])
.filter('productsFilter', [function () {
// Removes the dollar sign
var clearQuery = function (dirtyQuery) {
var index = dirtyQuery.indexOf('$');
if (index === -1)
return dirtyQuery;
return dirtyQuery.substr(index+1, dirtyQuery.length-index)
};
return function (products, query) {
if (query === '') return products;
var newProducts = [];
angular.forEach(products, function (product) {
var cleanQuery = clearQuery(query);
var strProductPrice = '' + product.price;
var index = strProductPrice.indexOf(cleanQuery);
if (index !== -1) {
newProducts.push(product);
}
});
return newProducts;
};
}]);
/* Styles go here */