如何从Angular2中的主要组件获取组件属性?

时间:2015-05-14 03:26:05

标签: angular

对此疯狂地摸不着头脑。

基本上我想要的只是在我的index.html中:

<app hero="iron man"></app>

在我的主index.html文件中,然后能够读取我的组件类中的英雄的值。

一直在这一周,无济于事。这是我的无功能的傻瓜:

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

2 个答案:

答案 0 :(得分:2)

感谢您的时间和回应!不幸的是,在您的方案中,您仍然没有检索对象的属性,您只需将第二个对象放在第一个对象中并检索这些属性。

好消息是,对于其他任何试图弄明白的人来说,它已被证实是一个错误!

https://github.com/angular/angular/issues/1858#event-305799002

答案 1 :(得分:0)

我必须稍微更改您的示例,就像我上次检查时一样(使用Angular 2.0.0-alpha.21),我遇到了从传递给{{的同一组件类中检索属性的问题。 1}}方法。

然而,使用一个略微修改的例子:

bootstrap

然后在你的HTML中:

@Component({
  selector: 'hero',
  properties: {'name':'name'}
})
@View({
  template:`<h1>Hero = {{_name}}</h1>`
})
class Hero {
  _name: string;

  constructor() { 
  };

  set name(name){
    this._name = name;
  }
}

@Component({
  selector: 'app',
})
@View({
  template:
  `
    <div>
      <hero name="iron man"></hero>
    </div>
  `,
  directives: [Hero]
})
class Application {
  constructor() { };
}

bootstrap(Application);

请注意,在构造函数中,<app> <hero name="iron man" /> </app> 将是未定义的。要在您的委托人中提供该属性,您可以注入它:

_name

这主要来自我对this question

的回答