javascript - 如何通过多个输入将新对象提交到数组

标签 javascript arrays angular

希望在一个更复杂的示例上获得一些帮助,该示例扩展了 Angular 的 Tour of Heroes 中的示例。

您将如何提交多个值,而不是每次提交单个字符串,例如以下示例:

          export class LittleTourComponent {
               heroes = [ {
                            'name':'Hulk',
                            'power':'strength'
                        },{
                            'name':'Bulk',
                            'power':'appetite'
                        }];

我认为由提交的值组成的新“条目”应该被推送到英雄数组中,如下所示:

addHero(newHero) {
        if (newHero) {

          var entry = {
            'name': newHero.name, 
            'power': newHero.power
            };

          this.heroes.push(entry);
        }
    }

但是模板中需要什么?在这种情况下您还会使用 keyup.enter 吗?:

模板:

<label>name</label
// how should the inputs be filled out in this scenario?
<input >
<label>power</label>
<input >

<button (click)=addHero(newHero)>Add</button>

 <ul *ngFor="let hero of heroes">
  <li>name:{{hero.name}}</li>
  <li>power:{{hero.power}}</li>
</ul>

示例也在plnkr

任何帮助表示赞赏。谢谢!

最佳答案

尝试在您的 ts 文件中执行此操作:

import {Component} from '@angular/core';

class Hero {
    name: string;
    power: string;
}
export class LittleTourComponent {

    newHero: Hero;

    constructor() {
        this.newHero = new Hero();
    }

    heroes = [{
        'name': 'Hulk',
        'power': 'strength'
    }, {
            'name': 'Bulk',
            'power': 'appetite'
        }];

    addHero() {
        if (this.newHero) {

            var entry = {
                'name': this.newHero.name,
                'power': this.newHero.power
            };

            this.heroes.push(entry);
        }
    }
}

...这在你的 html 中

<label>name</label>
<input [(ngModel)]="newHero.name">
<label >power</label>
<input [(ngModel)]="newHero.power">

<button (click)=addHero()>Add</button>

<ul *ngFor="let hero of heroes">
    <li>name:{{hero.name}}</li>
    <li>power:{{hero.power}}</li>
</ul>

关于javascript - 如何通过多个输入将新对象提交到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259952/

相关文章:

php - 记住 cookie 中的表单值以便稍后完成

JavaScript 获取然后更改类(带变量)

javascript - 如何在 React-Native 中使用 Javascript 解析时将 HTML 代码替换为相应的字符

angular - ng build --prod 没有生成 vendor.bundle.js

javascript - Javascript获取时区名称字符串?

javascript - 如何展平包含数组的对象数组?

arrays - 在 CoffeeScript 中获取数组的第一个和最后一个元素

php - 在数组中跳过 mysql 数据库中的值

javascript - 如何在 angular2 中解析 json 中的 json

Angular 2 指令的生命周期 Hook (ngAfterContentInit) 无法按照文档中的描述工作