[(NgModel)]是否更新行为主题?

雷暴

请考虑以下场景,也可以在这里https://stackblitz.com/edit/ionic-4-observables-playground获得

当我修改输入字段的值u1u3变化。由于[(NgModel)]纠缠不清u1,我希望u1u3在键入新值后立即在内存中对其进行修改,但只能进行瞬时读取,u1而不能u3

我想念什么?

问题编辑1

我期望:[(ngModel)]="u1.username"更改其值是因为双向数据绑定,但是u3由于没有任何NgModel而不会<p>u3: {{u3.username}}</p>

情境

home.page.ts

import { Component } from '@angular/core';
import {Observable, BehaviorSubject} from 'rxjs';
import 'rxjs/add/observable/from';
import {UserService} from '../user.service'

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.css'],
})
export class HomePage {
  private u ='1'
  private all
  private u1 = {username: undefined}
  private u2 = {username: undefined}
  private u3 = {username: undefined}

  constructor(private users:UserService){}

  ngOnInit(){
    this.u3 = this.users.findByUsername(this.u)
    this.users.userList.subscribe( (data) => {
      this.all = data
      this.u1 = this.users.findByUsername(this.u);
      this.u2 = data[1]
    });
  }
}

user.service.ts

import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {Observable, BehaviorSubject} from 'rxjs';
import 'rxjs/add/operator/map';

@Injectable()
export class UserService {

  public userList : BehaviorSubject<any[]> = new BehaviorSubject([
    { username: '1'}, {username: '2'}]);

  constructor() {}

  findByUsername(username: string) {
    return this.userList.value.find(each => each.username === username);
  }

}

home.page.html

<ion-content padding>
  <ion-item>
    <ion-label position="floating">username</ion-label>
    <ion-input
    name="username"
    type="text"
      [(ngModel)]="u1.username"
      required
    ></ion-input>
  </ion-item>
  <p *ngFor="let each of all; let i = index">u{{i +1}}: {{each.username}}</p>
  <p>u3: {{u3.username}}</p>
</ion-content>
JB Nizet

u1u3是对同一对象的两个引用。因此,如果您修改u1,那么您还修改了u3:它们是同一对象:

this.u3 = this.users.findByUsername(this.u)
// so u3 is the element from the list which has this.u as its name

this.u1 = this.users.findByUsername(this.u);
// so u1 is also the element from the list which has this.u as its name

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何订阅带有可观察对象的行为主题

来自分类Dev

Angular Rxjs如何使用行为主题进行分页

来自分类Dev

有时仅触发角度行为主题

来自分类Dev

Angular 2 - 具有行为主题的多个参数?

来自分类Dev

将数组作为 Observable 返回给行为主题

来自分类Dev

补丁请求后如何更新行为主体?

来自分类Dev

RxJS-多个订阅者未使用行为主题+共享执行

来自分类Dev

返回的行为主题(可观察到)是受take(1)还是取消订阅影响?

来自分类Dev

Rxjs行为主题值更改,而无需调用下一步

来自分类Dev

Angular 8-如何在页面上重新加载行为主题数据

来自分类Dev

Microsoft的Service Bus是否为主题中的每个订阅复制消息?

来自分类Dev

Angular 7:Rxjs行为主题订阅不适用于页面重新加载,但可用于路线导航

来自分类Dev

行为主体行为不正常?

来自分类Dev

以材料设计为主题的表格动画

来自分类Dev

以robots.txt为主题的CakePHP

来自分类Dev

按需导入额外的scss作为主题

来自分类Dev

MassTransit:队列不是为主题交换创建的

来自分类Dev

为主题创建多个客户端

来自分类Dev

如何使wordpress后端编辑器主题成为主主题?

来自分类Dev

更新代理设置(主题默认设置)是否会更改现有主题?

来自分类Dev

带有子主题的 WordPress 主题定制是否会对未来的更新造成任何风险

来自分类Dev

<select> 组件与 ngModel 的奇怪行为

来自分类Dev

如何关闭以对话框为主题的活动

来自分类Dev

将位置更改为主题的默认主菜单

来自分类Dev

在SF2中以收集表单为主题

来自分类Dev

为什么Dita的架构分为主题和地图?

来自分类Dev

复制日历项目,但不以“ Copy:”作为主题行吗?

来自分类Dev

从选择更新ngmodel

来自分类Dev

内置矩阵_Object2World,UNITY_MATRIX_MVP ...行为主还是列为主?

Related 相关文章

  1. 1

    如何订阅带有可观察对象的行为主题

  2. 2

    Angular Rxjs如何使用行为主题进行分页

  3. 3

    有时仅触发角度行为主题

  4. 4

    Angular 2 - 具有行为主题的多个参数?

  5. 5

    将数组作为 Observable 返回给行为主题

  6. 6

    补丁请求后如何更新行为主体?

  7. 7

    RxJS-多个订阅者未使用行为主题+共享执行

  8. 8

    返回的行为主题(可观察到)是受take(1)还是取消订阅影响?

  9. 9

    Rxjs行为主题值更改,而无需调用下一步

  10. 10

    Angular 8-如何在页面上重新加载行为主题数据

  11. 11

    Microsoft的Service Bus是否为主题中的每个订阅复制消息?

  12. 12

    Angular 7:Rxjs行为主题订阅不适用于页面重新加载,但可用于路线导航

  13. 13

    行为主体行为不正常?

  14. 14

    以材料设计为主题的表格动画

  15. 15

    以robots.txt为主题的CakePHP

  16. 16

    按需导入额外的scss作为主题

  17. 17

    MassTransit:队列不是为主题交换创建的

  18. 18

    为主题创建多个客户端

  19. 19

    如何使wordpress后端编辑器主题成为主主题?

  20. 20

    更新代理设置(主题默认设置)是否会更改现有主题?

  21. 21

    带有子主题的 WordPress 主题定制是否会对未来的更新造成任何风险

  22. 22

    <select> 组件与 ngModel 的奇怪行为

  23. 23

    如何关闭以对话框为主题的活动

  24. 24

    将位置更改为主题的默认主菜单

  25. 25

    在SF2中以收集表单为主题

  26. 26

    为什么Dita的架构分为主题和地图?

  27. 27

    复制日历项目,但不以“ Copy:”作为主题行吗?

  28. 28

    从选择更新ngmodel

  29. 29

    内置矩阵_Object2World,UNITY_MATRIX_MVP ...行为主还是列为主?

热门标签

归档