Ember.js RouterService decrementProperty() Method
Ember.js is an open-source JavaScript framework used for developing large client-side web applications which is based on Model-View-Controller (MVC) architecture. Ember.js is one of the most widely used front-end application frameworks. It is made to speed up development and increase productivity. Currently, it is utilized by a large number of websites, including Square, Discourse, Groupon, Linked In, Live Nation, Twitch, and Chipotle.
The decrementProperty() method is used to set a property’s value to its current value minus a certain amount.
Syntax:
decrementProperty(key,decrement)
Parameters:
- key: The name of the property to decrement.
- decrement: The amount to reduce.
Returns: The new decremented value.
Steps to Install and Run Ember.js:
Step 1: To run the following examples, you will need to have an ember project with you. To create one, you will need to install ember-cli first. Write the below code in the terminal:
npm install ember-cli
Step 2: Now, you can create the project by typing in the following piece of code:
ember new <project-name> --lang en
To start the server, type:
ember serve
Example 1: Type the following code to generate the route for this example:
ember generate route students
app/route/students.js
Javascript
import Route from '@ember/routing/route' ; import EmberObject from '@ember/object' ; const Student = EmberObject.extend({ init() { console.log(`Name is ${ this .get( 'name' )}`); } }); export default class StudentsRoute extends Route { student; createStudent() { let student = Student.create({ name: 'Alix Mainston' , gender: 'F' , class: 9, grade: 'B' , marks: 98, pocket_money: 9643, }); return student; } getGrade(student) { return student.get( 'grade' ); } setGender(student) { return student.set( 'gender' , 'F' ); } decreaseMarks(student) { student.decrementProperty( 'marks' ); } increasePocketMoney(student) { student.incrementProperty( 'pocket_money' , 1000); } model() { this .student = this .createStudent(); this .student.grade = this .getGrade( this .student); this .student.gender = this .setGender( this .student); this .decreaseMarks( this .student); this .increasePocketMoney( this .student); return this .student; } setupController(controller, model) { super .setupController(controller, model); controller.set( 'student' , this .student); } } |
app/template/students.hbs
HTML
{{page-title "Students"}} < h1 >Details:</ h1 > < div >Name: {{this.student.name}}</ div > < div >Gender: {{this.student.gender}}</ div > < div >Class: {{this.class}}</ div > < div >Grade: {{this.student.grade}}</ div > < div >Marks: {{this.student.marks}}</ div > < div >Pocket Money: {{this.student.pocket_money}}</ div > {{outlet}} |
Output:
Example 2: Type the following code to generate the route for this example:
ember generate route details
app/route/details.js
Javascript
import Route from '@ember/routing/route' ; import EmberObject from '@ember/object' ; import StudentsRoute from './students' ; const Person = EmberObject.extend({ init() { console.log( 'Init Function called....' ); }, }); export default class DetailsRoute extends Route { person; createPerson() { let person = Person.create({ name: 'Anubhav' , mobile: '1298119967' , age: 20, salary: 10000, city: 'Patna' , country: 'India' , gender: 'M' , zipCode: '800020' , }); return person; } changeName(person) { return person.set( 'name' , 'Aayush' ); } getGender(person) { return person.get( 'gender' ); } increaseSalary(person) { person.incrementProperty( 'salary' , 10000); } decreaseAge(person) { person.decrementProperty( 'age' ); } model() { this .person = this .createPerson(); this .person.name = this .changeName( this .person); this .person.gender = this .getGender( this .person); this .increaseSalary( this .person); this .decreaseAge( this .person); console.log( this .person); return this .person; } setupController(controller, model) { super .setupController(controller, model); controller.set( 'person' , this .person); } } |
app/template/details.hbs
HTML
{{page-title "Details"}} < h1 >Person</ h1 > < div >Name: {{this.person.name}}</ div > < div >Age: {{this.person.age}}</ div > < div >Salary: {{this.person.salary}}</ div > < div >Gender: {{this.person.gender}}</ div > < div >Zip Code: {{this.person.zipCode}}</ div > < div >Mobile: {{this.person.mobile}}</ div > {{outlet}} |
Output:
Reference: https://api.emberjs.com/ember/4.7/classes/RouterService/methods