Open In App

Ember.js Service toggleProperty() Method

Improve
Improve
Like Article
Like
Save
Share
Report

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 toggleProperty() method is used to negate the value of a boolean property.

Syntax:

toggleProperty(key)

 

Parameters:

  • key: The property whose value is to be negated.

Returns: The new property 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

Step 3: 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/controllers/students.js

Javascript




import Ember from 'ember';
  
export default Ember.Controller.extend({
    name: 'Alix Mainston',
    gender: 'F',
    class: 9,
    grade: 'B',
    pocket_money: 9643,
    pass: true,
    newName: '',
    newGender: '',
    actions: {
        setName(val) {
            this.set('name', val);
        },
        setGender(val) {
            this.setProperties({ 'gender': val })
        },
        togglePass() {
            this.toggleProperty('pass');
        },
    },
});


app/template/students.hbs

HTML




import Ember from 'ember';
  
export default Ember.Controller.extend({
    name: 'Alix Mainston',
    gender: 'F',
    class: 9,
    grade: 'B',
    pocket_money: 9643,
    pass: true,
    newName: '',
    newGender: '',
    actions: {
        setName(val) {
            this.set('name', val);
        },
        setGender(val) {
            this.setProperties({ 'gender': val })
        },
        togglePass() {
            this.toggleProperty('pass');
        },
    },
});


Output:

 

Example 2: Type the following code to generate the route for this example:

ember generate route details

app/controllers/details.js

Javascript




import Ember from 'ember';
  
export default Ember.Controller.extend({
    name: 'Anubhav',
    mobile: '1298119967',
    age: 20,
    salary: 10000,
    city: 'Patna',
    country: 'India',
    gender: true,
    zipCode: '800020',
    newName: '',
    newAge: '',
    newSalary: '',
    actions: {
        setName(val) {
            this.set('name', val);
        },
        changeDetails(val1, val2) {
            this.setProperties({ 'age': val1, 'salary': val2 });
        },
        toggleGender() {
            this.toggleProperty('gender');
        },
    },
});


app/template/details.hbs

HTML




{{page-title "Details"}}
<div>{{this.name}}</div>
<div>{{this.age}}</div>
<div>{{this.salary}}</div>
<div>{{if this.gender "MALE" "FEMALE"}}</div>
<div>{{this.zipCode}}</div>
  
<br /><br />
<div>
    <label>Enter Name: </label>
      {{input value=this.newName}}
</div>
<input
    type="button"
    id="set-name"
      value="Change Name"
      {{action "setName" this.newName}}
/>
<br /><br />
<div>
    <label>Enter Age: </label>
      {{input value=this.newAge}}
</div>
<div>
    <label>Enter Salary: </label>
      {{input value=this.newSalary}}
</div>
<input
    type="button"
      id="changeDetails"
      value="Change Details"
      {{action "changeDetails" this.newAge this.newSalary}}
/>
<br /><br />
<input
    type="button"
      id="toggle-gender"
      value="Toggle Gender"
      {{action "toggleGender"}}
/>
<br /><br />
  
{{outlet}}


Output:

 

Reference: https://api.emberjs.com/ember/4.7/classes/Service/methods/



Last Updated : 01 Nov, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads