1

これについて狂ったように頭を掻いています。

基本的に私が欲しいのは私のindex.htmlのようなものです:

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

メインの index.html ファイルで、コンポーネント クラスの hero の値を読み取ることができます。

これで1週間、役に立たなかった。これが私の機能していないplunkrです:

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

4

2 に答える 2

2

お時間とご回答ありがとうございます。残念ながら、あなたのシナリオではまだオブジェクトのプロパティを取得していません。最初のオブジェクトの中に 2 番目のオブジェクトを配置してそれらのプロパティを取得しているだけです。

それを理解しようとしている他の人にとっては朗報ですが、それはバグとして確認されています!

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

于 2015-05-16T04:13:02.783 に答える
0

私の最後のチェック(Angular 2.0.0-alpha.21を使用)で、bootstrapメソッドに渡された同じコンポーネントクラスからプロパティを取得する際に問題があったため、例を少し変更する必要がありました。

ただし、わずかに変更された例を使用すると、次のようになります。

@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);

次に、HTML で:

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

コンストラクタ内からは_name未定義になることに注意してください。コンストラクターでプロパティを使用できるようにするには、それを注入できます。

class Hero {
   _name: string;

   constructor(@Attribute('name') name:string) { 
       this._name = name;
   };
}

これは主に、この質問に対する私の回答から取られています

于 2015-05-15T08:17:23.050 に答える