2017-07-19 10 views
2

私はかなり緑色の角度1のデベロッパーで、角度4の周りに頭を抱えようとしています。これまでのところとても良いですが、私は確信していることにハングアップしています。 。角4:コンポーネントのプロパティ値を取得します。私は間違って何をしていますか?

私のテンプレートでは、私はここに私はおそらくこれがどのように機能するかを誤解していますが、私は@Inputと思っているだろう

import { Component, OnInit, Input } from '@angular/core'; 
import { CardsDataService } from '../cards-data.service'; 

@Component({ 
    selector: 'app-card', 
    templateUrl: './card.component.html', 
    styleUrls: ['./card.component.css'] 
}) 

export class CardComponent implements OnInit { 

    cardData: any; 

    @Input() cardsType: string; 


    constructor(private CardsDataService: CardsDataService) {} 

    ngOnInit() { 
     this.CardsDataService.getData().subscribe((data) => { 
      this.cardData = data.tarot; 
     }); 

     console.log(this.cardsType); 
    } 

} 

ためcard.component.tsこのタグ

<app-card [cardsType]="majorArcana"></app-card> 

をだしています()cardsType:文字列;コンソールでthis.cardsTypeを "majorArcana"として記録します。

それは動作しませんか?ここで

+0

ここに書かれているように、majorArcanaは、内部にapp-cardタグが書き込まれたコンポーネントに属するプロパティです。ここでは、あなたの入力(cardsType)がmajorArcanaプロパティの値を持つと言っています。 –

答えて

4

あなたはmajorArcanaという名前の親コンポーネントのプロパティに渡したいと言っている:

<app-card [cardsType]="majorArcana"></app-card> 

あなたが直接このような文字列を渡すことができる必要があります:

<app-card [cardsType]="'majorArcana'"></app-card> 

編集:他の方法で@PankajParkarから答えをチェックしてください。

+0

またはこのように 'cardsType =" majorArcana "' –

+0

ああ。 OK。私は、プロパティからデータをバインドするために[]または()のいずれかを使用しなければならないという指示の下で動作していました。私はそれが表現の場合は間違いないが、文字列を使うと、値が文字列であることを指定するために、実際には一重引用符で囲む必要があります。 文字列の場合はこれが好ましい方法ですか?@ PankakParkarのバージョンがメソッドですか?両方とも働いているから。 –

+0

@BryanWhite個人的には、括弧は 'app-card'コンポーネントが' cardsType'という名前の 'Input'を持っていることを私に明示していますが、大括弧なしでは別の理由で属性があると思うかもしれません。しかし、文字列のリテラルを常に渡しているなら、いずれにしても問題ないと思います。 –

3

基本的には、属性を[]でラップすると、コンポーネントのコンテキストや評価値が割り当てられたときにその式が評価されます。そこでここでは、この場合のmajorArcanaundefinedに評価した(そして、あなたはそれを文字列として渡すことが予想された)

あなただけattribute代わりのproperty bindingを使用してこの問題を克服することができます。

cardsType="majorArcana" 

他&好ましい方法は、@Frank Modicaの答えだろう。すでにカバーされているように、私はFrankの答えにリンクしています。

+0

知っておきたいこと!ご協力いただきありがとうございます! –

関連する問題