如何将Observable属性传递给Angular2中的组件?

坦率的73 p

尝试将Observable对象的属性传递给组件,如下所示:

<bookmark [type]="'store'" [targetId]="(store | async)?.id" [endDate]="99999999999999"></bookmark>

但是targetId始终是未定义的。正确的方法是什么?

slaesh

您做得对,但我想您正面临另一个问题。

让我在这里演示一下:https : //plnkr.co/edit/AE67JyXZ5hg6A1ahrm7E?p=preview

如果是“正常”可观察的,则仅在启动视图后触发事件时才更新视图!

如果之前有事件,则不会显示!

因此,您应该使用BehaviorSubject,它将“缓冲”最后一个值。

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2>Hello {{name}}</h2>

      <br />
      without timeout: {{ (testWoTimeout | async)?.any }} <!-- will not be shown -->

      <br />
      with timeout: {{ (test | async)?.any }} <!-- will be shown cause of that timeout -->

      <br />
      behavior subject: {{ (behaviorTest | async)?.any }} <!-- will be shown cause of that BehaviorSubject -->
    </div>
  `,
})
export class App {
  name:string;

  test = new Subject();
  testWoTimeout = new Subject();
  behaviorTest = new BehaviorSubject({ any: 'default' });

  constructor() {
    this.name = 'Angular2'
  }

  ngOnInit() {

    this.testWoTimeout.next({ any: 'prop' }); // this will not be shown, cause its fired before the view was initiated!

    this.behaviorTest.next({ any: 'prop' });

    setTimeout(() => {
      this.test.next({ any: 'prop' });
    }, 250);
  }
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将2个参数传递给EventEmitter angular2

如何将字符串值传递给angular2中的组件

如何将数组属性传递给Ember组件?

角度2:如何将属性传递给子组件?

Angular2,TypeScript,如何将属性值读取/绑定到组件类(在ngOnInit中未定义)

如何将通用HTML传递给Angular 2组件?

如何将表达式作为Angular2中的输入传递给组件?

angular2将ngModel传递给子组件

将参数传递给Angular2组件

如何将变量从@Input传递到Angular2组件中的服务>

Angular2:将所有属性传递给子组件

Angular:如何将内联样式传递给组件

如何将异步数据传递给对象中的子组件(Angular6)

如何将属性传递给标签导航器中的本地组件?

在Angular 2中单击时如何将输入值传递给另一个组件?

如何将NgControl状态传递给Angular中的子组件,实现ControlValueAccessor?

如何将函数作为属性传递给React组件?

在Dart Angular中,如何将函数传递给组件

如何将参数传递给Camel中的myBatis组件?

Angular2将属性传递给类构造函数

将值传递给子组件Angular2

如何将数据传递给嵌套(子级)Angular 2属性组件

如何将属性传递给无状态/功能组件?

如何将 Angular 2 表单输入传递给打字稿组件?

如何将属性传递给 React 函数组件?

如何将 ngModel 值传递给 Angular 6 中的组件

如何将 HTML 属性传递给 React 中的子组件?

如何将 vmodel 属性传递给 nuxjs 中的子组件

如何将属性从反应组件传递给其父级?