小编Gab*_*abu的帖子

Angular2 Change Detection - 对象与字符串输入属性

我想通过从HeroDetailComponent调用一个孙子组件power-select来扩展[Angular2的教程] [1]中的应用程序:

  selector: 'my-hero-detail',
  template: `
    <div *ngIf="hero">
      <h2>{{hero.name}} details!</h2>
      <div><label>id: </label>{{hero.id}}</div>
      <div> 
        <label>name: </label>
        <input [(ngModel)]="hero.name" placeholder="name"/>
        <power-select [(power)]="hero.power"></power-select>
      </div>
    </div>
  `,
  directives: [PowerSelectComponent],
  inputs: ['hero']
Run Code Online (Sandbox Code Playgroud)

当我将hero.power作为对象传递时,更改会反映到父/祖父母.

http://plnkr.co/edit/UfMStWU5fEywvovpSIg1?p=preview

但是,如果我尝试将hero.power作为字符串传递,则除非我使用@Ouput eventemitter,否则不会反映更改.

http://plnkr.co/edit/p9YcfGudIgSbGPp1xrlw?p=preview(提供:zoechi)

问题是,为什么我在传递字符串时需要@Output eventemitter而不是在传递对象时?

angular

4
推荐指数
1
解决办法
994
查看次数

标签 统计

angular ×1