Ember.js Ember.NativeArray mapBy() 方法

Ember.js Ember.NativeArray mapBy() 方法

Ember.js 是一个开源的JavaScript框架,用于开发基于模型-视图-控制器(MVC)架构的大型客户端Web应用程序。Ember.js是目前最广泛使用的前端应用程序框架之一,旨在加快开发速度并提高生产力。目前,它被许多网站使用,包括Square、Discourse、Groupon、Linked In、Live Nation、Twitch和Chipotle等。

mapBy() 方法用于获取枚举中所有项的指定属性的值。它类似于map方法。

语法:

mapBy( key );
JavaScript

参数:

  • key: 要获取值的属性名称。

返回值: 映射数组。

步骤1: 要运行以下示例,您需要拥有一个 Ember 项目。要创建一个,您需要首先安装 ember-cli。在终端中写入以下代码:

npm install ember-cli
JavaScript

步骤2: 现在您可以通过输入以下代码来创建项目:

ember new <project-name> --lang en
JavaScript

要启动服务器,请输入:

ember serve
JavaScript

示例1: 输入以下代码以生成此示例的路由:

ember generate route mapBy1
JavaScript

app/routes/mapBy1.js

import Route from "@ember/routing/route";
class employee {
    name = null;
    mobile = null;
    city = null;
    country = null;
    gender = null;
    zipCode = null;
    constructor(name, mobile, city, country, gender, zipCode) {
        this.name = name;
        this.mobile = mobile;
        this.city = city;
        this.country = country;
        this.gender = gender;
        this.zipCode = zipCode;
    }
    get_add() {
        return `{this.name} is Employee from{this.city}`;
    }
}
export default class DetailsRoute extends Route {
    details = [
        new employee("Anubhav", "1298119967", 
            "Patna", "India", "M", "800020",),
        new employee("Yogesh", "1234567890", 
            "Raipur", "India", "M", "402001"),
        new employee("Satyam", "2222222222", 
            "Delhi", "India", "M", "110012"),
        new employee("Shivam", "1122113322", 
            "Patna", "India", "M", "530068"),
        new employee("Ayushi", "2244668800", 
            "Jaipur", "India", "F", "302001")
    ];
 
    city;
    start;
    end;
    model() {
        return this.details;
    }
    setupController(controller, model) {
        super.setupController(controller, model);
        controller.set("details", this.details);
        controller.set("city", this.city);
        controller.set("start", this.start);
        controller.set("end", this.end);
    }
}
JavaScript

app/controllers/mapBy1.js

import Ember from "ember";
import { isAny }
    from "@ember/array";
 
export default Ember.Controller.extend({
    actions: {
        getNames() {
            let ans = this.details.mapBy('name');
            alert(ans.join('\n'));
        },
        showAdd() {
            let res = this.details.invoke('get_add');
            alert(res.join('\n'));
        },
        checkFemale() {
            let res = this.details.isAny('gender', 'F');
            alert(res ? `Female employee present in List` : 
                `No Female present`);
        },
    },
});
JavaScript

app/templates/mapBy1.hbs

import Ember from "ember";
import { isAny }
    from "@ember/array";
 
export default Ember.Controller.extend({
    actions: {
        getNames() {
            let ans = this.details.mapBy('name');
            alert(ans.join('\n'));
        },
        showAdd() {
            let res = this.details.invoke('get_add');
            alert(res.join('\n'));
        },
        checkFemale() {
            let res = this.details.isAny('gender', 'F');
            alert(res ? `Female employee present in List` : 
                `No Female present`);
        },
    },
});
JavaScript

输出: 访问 localhost:4200/mapBy1 查看输出

Ember.js Ember.NativeArray mapBy() 方法

示例2: 输入以下代码生成此示例的路由:

ember generate route mapBy2
JavaScript

app/routes/mapBy2.js

import Route from '@ember/routing/route';
import { } from '@ember/array';
class fruit {
    name = null;
    isFruit = null;
    color = null;
    constructor(name, isFruit, color) {
        this.name = name;
        this.isFruit = isFruit;
        this.color = color;
    }
 
    show_item() {
        return `{this.name} is 
            {this.isFruit ? '' : 'not'} fruit`;
 
    }
}
export default class FruitsRoute extends Route {
    fruits = [
        new fruit('Lady Finger', false, 'green'),
        new fruit('Brinjal', false, 'purple'),
        new fruit('Apple', true, 'red'),
        new fruit('Grapes', true, 'green'),
        new fruit('Mango', true, 'yellow'),
        new fruit('Watermelon', true, 'red'),
        new fruit('Orange', true, 'orange')
    ];
    model() {
        return this.fruits;
    }
    setupController(controller, model) {
        super.setupController(controller, model);
        controller.set('fruits', this.fruits);
    }
}
JavaScript

app/controllers/mapBy2.js

import Ember from "ember";
import { isAny, isEvery } from "@ember/array";
 
export default Ember.Controller.extend({
    actions: {
        showFruit() {
            let ans = this.fruits.invoke("show_item")
            alert(ans.join('\n'));
        },
        alertFruit() {
            let ans = this.fruits.mapBy("name");
            alert(ans.join('\n'));
        },
        checkFruits() {
            let ans = this.fruits.isAny('isFruit', true);
            alert(ans ? "Fruits present in list" : 
                "Fruits not present in list")
        },
        checkvegy() {
            let ans = this.fruits.isAny('isFruit', false);
            alert(!ans ? "Vegetables present in list" : 
                "Vegetables not present in list")
        },
    },
});
JavaScript

app/templates/mapBy2.hbs

{{page-title "mapBy"}}
<h3>Here is a list of eatables: </h3>
<ul>
    {{#each @model as |eatable|}}
        <li>
              {{eatable.name}}
        </li>
      {{/each}}
</ul>
<br />
<input
    type="button"
      id="fruit-show"
      value="Check Fruits"
      {{action "showFruit"}}
/>
<br /><br />
<input
    type="button"
      id="fruit-all"
      value="Alert all Item names"
      {{action "alertFruit"}}
/>
<br /><br />
<input
    type="button"
      id="check-Fruits"
      value="Check any Fruit"
      {{action "checkFruits"}}
/>
<br /><br />
<input
    type="button"
      id="check-NonFruits"
      value="Check any Vegetables"
      {{action "checkvegy"}}
/>
{{outlet}}
JavaScript

输出: 访问 localhost:4200/mapBy2 查看输出

Ember.js Ember.NativeArray mapBy() 方法

参考: https://api.emberjs.com/ember/4.4/classes/Ember.NativeArray/methods/mapBy?anchor=mapBy

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册