AngularJS Price Data Filter: Filtering Your Data with Ease

Currently, I have successfully implemented filters for bedrooms and bathrooms in my project. However, I am now looking to add a price filter that allows users to select both a minimum and maximum price to further refine their search criteria.

An ideal scenario would involve dynamically generating dropdowns based on the lowest and highest price data available in $scope.houses. Though this may seem like wishful thinking at the moment!

Controller:

angular.controller('HouseStylesCtrl', function ($scope) {
    $scope.selectBedrooms = 'all';
    $scope.selectBathrooms = 'all';
    $scope.houses = [
        { id: 1, name: 'The Astaire', bedrooms: '1', bathrooms: '1', price: '196,995', image: 'the-astaire.jpg', showHome: false, sold: false },
        { id: 2, name: 'The Burton', bedrooms: '2', bathrooms: '2', price: '201,995', image: 'the-burton.jpg', showHome: true, sold: false },
        { id: 3, name: 'The McQueen', bedrooms: '3', bathrooms: '1', price: '196,995', image: 'the-mcqueen.jpg', showHome: false, sold: false },
        { id: 4, name: 'The Hepburn', bedrooms: '4', bathrooms: '2', price: '197,105', image: 'the-hepburn.jpg', showHome: false, sold: false },
        { id: 5, name: 'The Astaire', bedrooms: '1', bathrooms: '1', price: '196,995', image: 'the-astaire.jpg', showHome: false, sold: false },
        { id: 6, name: 'The Burton', bedrooms: '2', bathrooms: '2', price: '201,995', image: 'the-burton.jpg', showHome: false, sold: false },
        { id: 7, name: 'The McQueen', bedrooms: '3', bathrooms: '1', price: '196,995', image: 'the-mcqueen.jpg', showHome: false, sold: false },
        { id: 8, name: 'The Hepburn', bedrooms: '4', bathrooms: '2', price: '197,105', image: 'the-hepburn.jpg', showHome: false, sold: true }
    ];
});

View:

<select ng-model="search.bedrooms">
    <option value="">Bedrooms</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
</select>
...

In conclusion, any guidance or help provided would be greatly appreciated. Thank you in advance.

Answer №1

Check out this Plunker example here. It might be just what you need. I didn't have much time to work on it, but I believe it's a good starting point. The slider used in this example is from this GitHub repository.

<slider floor="0" ceiling="50" ng-model-low="lower_price_bound" ng-model-high="upper_price_bound"></slider>

UPDATE You can also try this alternative version: here

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Replace the phrase "add to cart" with "plus" and "minus" in Opencart

I am trying to customize the Add to Cart functionality in OpenCart 2.0.1.1 by replacing it with plus and minus buttons. I have successfully added the plus button, however, I am facing difficulty coding for the minus button. The code snippet below shows w ...

Unable to locate the control specified by the path: 'files -> 0 -> postId'

I am in the process of creating a dynamic form with formArray and running into an issue. When I click on the AddItem button, it should create an input field for uploading files. Here is the HTML code snippet I am using: <div class="row m-auto col-md-1 ...

enhancing a node-express-browserify project with jadeify

Unique Context I recently set up a project based on a node-browserify boilerplate example. My development environment is using coffee-script. Currently, I am attempting to integrate jadeify into the setup with the following code: bundle = browserify ...

Is it possible to create a React Component without using a Function or Class

At times, I've come across and written React code that looks like this: const text = ( <p> Some text </p> ); While this method does work, are there any potential issues with it? I understand that I can't use props in this s ...

The expiration and creation of access tokens in the Gmail API

For the past 6 months, I have been utilizing the Google API to send emails from my server in a Node.js project. I have successfully set up credentials and generated both refresh and access tokens, which I have been using consistently. oAuth2Client = new go ...

Using jQuery, you can easily insert a <span> tag around selected text and then save this modification permanently in a local HTML file

I have compiled notes in an HTML file stored on my local computer, with the intention of keeping it solely for personal use. For instance, I have a snippet like this: <p> this is an example text</p> My goal is to highlight the word "example" ...

Error: Unable to iterate over data.data due to its type

I am attempting to fetch images from the woocommerce API and here is the code I am using: this.config.getWithUrl(this.config.url + '/api/appsettings/get_all_banners/?insecure=cool') .then((data: any) => { this.banners = data.data; consol ...

Customizing tooltip text in Google Chart API: A step-by-step guide

http://code.google.com/apis/chart/ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> // Loading the Visualization API and the piechart package from Google. google.load(' ...

Using Regular Expressions to Verify Numerous Postal Codes within an Array

I'm currently working on a function that validates postcodes using a regex. The function should be able to handle either a single postcode or multiple postcodes. When I input a single postcode, everything works as expected. However, when I try to inp ...

Can we achieve Client-side Validation without using JavaScript?

Just a quick question (I have a guess, but want to be certain), I just need a simple Yes/No answer as I can't find clarification anywhere. The reason for my query is because of web pages designed for mobile phones, where javascript support is incons ...

Maintaining the integrity of a list within a for loop

I have a challenge where I need to display 3 elements in cards on each row from a list of elements. The issue with my current code is that it only displays the first two elements and then the loop stops. Here is the code snippet using ReactJS and Materia ...

The process of extracting all arrays from a JSON object

Within my JSON object, there is a list of countries each with multiple regions stored in an array. My goal is to extract and combine all the regions into one single list. However, when I attempt to map the data, it does not consolidate all the regions as e ...

Can a JavaScript file be imported exclusively for a Vue component?

When attempting to utilize the table component in the vue-ant framework, I am facing an issue. I am only looking to import the table style, but when I try to import the table style using import 'ant-design-vue/lib/table/style/css', it affects all ...

Determining the status of a form field (enabled or disabled) within an AngularJS controller

Within an AngularJS controller, what is the best method to verify whether a specific field is enabled or disabled? I have thoroughly searched through the AngularJS documentation, yet I have not come across any form field property that clearly indicates t ...

Issue with Angular data binding: ng-value not functioning as expected

<label class="item item-input"> <span class="input-label"> Gender : </span> <input type="text" value="{{results.address}}" ng-model="formData.address"> </label> I am trying to populate the text field with data re ...

How to use AngularJS directives to replace text with stars (*) in HTML

I am in need of a textarea control that has the ability to be masked, meaning that the text displayed should appear as stars instead of the actual characters. Since I might have multiple textareas in my form, saving the actual text in one variable and usi ...

The CSS transition effect is smooth when the accordion opens, but it does not have the same effect when

Currently, I am creating an accordion component that is supposed to have a smooth transition effect when opened and closed. However, while the transition works smoothly when the accordion opens, it seems to have some issues when it comes to closing. I hav ...

Sending an Ajax request following validation with jQuery

After successfully validating a form, I attempt to make an ajax request. Strangely, if I remove the , after url: 'loginprivate.php', the PHP code functions properly but the validation does not. On the other hand, if I add the ,, the validation wo ...

Utilizing component data in Vue.js to configure the router-link attribute

Is there a way to pass component data in <router-link to="...">? Here's an example: var data = { files: [{ name: "test", path: "/test" }] }; var component = { data: function() { return data; ...

Changing the boolean value of User.isActive in Node.js: A step-by-step guide

Define a User Model with isActive as a Boolean property. Upon clicking a button, the user is redirected to a route where their information is retrieved based on the id from the parameters. Once the user is found, the script checks the value of isActive. ...