尝试使用选择选项和ngFor将对象推入数组

时间:2019-08-13 13:03:35

标签: arrays angular ngfor

我试图将来自模板的对象推入数组,但是当我推第二个对象时,第一个对象被更改并且对象被复制。

我正在尝试:

<div class="modal-body">
      <select class="form-control select2-hidden-accessible" [(ngModel)]="userSelected" name="user selec" (change)="selectValorUsuario(userSelected)">
        <option *ngFor="let usuario of Usuario" [ngValue]="usuario">{{usuario.nome}}</option>
      </select>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-secondary" (click)="classicModal.hide()"
        data-dismiss="modal">Fechar</button>
      <button type="button" class="btn btn-primary" id="btnIncluirUnidadeUsuarios"
       (click)="adicionarArrUsuario()">Incluir</button>
    </div>

比组件中的

selectValorUsuario(evt) {
  this.nomeUsuarioObj.id = evt.id;
  this.nomeUsuarioObj.nome = evt.nome;
  this.unidadeUsuarioArr.push(this.nomeUsuarioObj)
  console.log(this.unidadeUsuarioArr);    
}

但结果是:

enter image description here

2 个答案:

答案 0 :(得分:2)

const cp = require('child_process');
const random = cp.spawn('./(program)');

        return new Promise(function(resolve, reject) {

    (input)

                    console.log("result"); // until this line executed
    random.stdout.on('data', (data) => {
                console.log("testing"); // this line not executed

        const random_out = `${data}`;
        const result = random_out.split('\n');
                console.log(result); // not executed, too

答案 1 :(得分:1)

您正在修改类级别变量unidadeUsuarioArr

相反,您应该在函数selectValorUsuario中创建一个新变量,然后将该变量传递给unidadeUsuarioArr数组

selectValorUsuario(evt) {
   let obj:any = {};
   obj.id = evt.id;
   obj.nome = evt.nome;
   this.nomeUsuarioObj = obj; // In case you need the current value which is selected
   this.unidadeUsuarioArr.push(obj);
}