相关疑难解决方法(0)

委托:Angular中的EventEmitter或Observable

我试图在Angular中实现类似委托模式的东西.当用户点击a时nav-item,我想调用一个函数然后发出一个事件,而该事件又由一些其他组件监听事件来处理.

这是场景:我有一个Navigation组件:

import {Component, Output, EventEmitter} from 'angular2/core';

@Component({
    // other properties left out for brevity
    events : ['navchange'], 
    template:`
      <div class="nav-item" (click)="selectedNavItem(1)"></div>
    `
})

export class Navigation {

    @Output() navchange: EventEmitter<number> = new EventEmitter();

    selectedNavItem(item: number) {
        console.log('selected nav item ' + item);
        this.navchange.emit(item)
    }

}
Run Code Online (Sandbox Code Playgroud)

这是观察组件:

export class ObservingComponent {

  // How do I observe the event ? 
  // <----------Observe/Register Event ?-------->

  public selectedNavItem(item: number) {
    console.log('item index changed!');
  }

}
Run Code Online (Sandbox Code Playgroud)

关键问题是,如何让观察组件观察相关事件?

event-delegation observable observer-pattern eventemitter angular

231
推荐指数
2
解决办法
12万
查看次数

触发对 Angular 2 中的子组件的更改,即使数据/状态未更改

我有这个父组件,它有一个布尔属性,可以由用户通过 UI 中的按钮设置。

我有一组递归子组件,实际上是一棵树,需要响应该布尔属性的更改,即使该布尔属性的值未更改,但用户已按下该按钮

换句话说,即使该布尔属性是false,并且用户单击该按钮,并且由于某些逻辑,布尔属性根本没有更改并保持为false,我仍然希望通知子组件。

我正在使用ngOnChanges并且正在尝试手动触发事件

但是在falseto 的情况下false,这意味着没有变化,ngOnChanges则不会调用 on children 组件。

我在这里想念什么?

javascript angular

2
推荐指数
1
解决办法
4431
查看次数