2017-06-01 7 views
1

私は最近、クエリに関する問題に取り組んでいます。特定の問題に取り組んでいる間に、いくつかのクエリパラメータを定義する必要があります。ここにコードスニペットがあります -[queryParams]ディレクティブのクエリパラメータをAngular 2で他の方法で定義する方法は?

<a [routerLink]="resultsearch" [queryParams]="{query: result.label, 
                 verify: false, 
                 nav: 'filetype,protocol,hosts,authors,collections,namespace,topics,date', 
                 start: 0, 
                 indexof: 'off', 
                 meanCount: '5', 
                 resource: 'global', 
                 prefermaskfilter: '', 
                 rows: 10, 
                 timezoneOffset: 0}" 
      class="rellink">{{result.label}}</a> 

ここのコードは、HTMLファイルで非常に混乱しているようです。私は、コンポーネントのファイル.tsにそれらを定義し、[queryParams]ディレクティブの値を渡すことができますか?もし誰かが私をこの中で導くことができれば素晴らしいだろう。前もって感謝します! :)コンポーネントプロパティの

+1

は、[バインド](https://angular.io/docs/tsをお使いのコンポーネントクラスのオブジェクトを定義して、 /latest/guide/template-syntax.html#!#property-binding)を参照してください。 –

+0

@JoeClay私の質問に時間を与えてくれてありがとう。私はこれで新しいです。もしあなたが私に答えを与えることができれば素晴らしいだろう。私はそれをはるかに良く理解するでしょう。 :) –

答えて

2

[...]構文がproperty bindingと呼ばれている - 。それはあなたが合格にどんなtemplate expressionの値にプロパティを設定します

分で、あなただけのように直接単純なオブジェクトを渡しています式の 'コンテキスト'は、コンポーネントクラスのすべてのメンバー変数にアクセスできるようにします。あなたのrouterLinkプロパティとresultプロパティでこれを既に使用しているようです。だから、あなたは簡単にコンポーネントクラスに出てqueryParamsを移動し、そうみたいにバインドすることができます

@Component({ 
    selector: 'my-component', 
    template: ` 
    <a [routerLink]="resultsearch" [queryParams]="queryParams" class="rellink"> 
     {{result.label}} 
    </a> 
    ` 
}) 
export class MyComponent { 
    resultsearch = "/whatever/your/path/is";  

    queryParams = { 
    query: result.label, 
    verify: false, 
    nav: 'filetype,protocol,hosts,authors,collections,namespace,topics,date', 
    start: 0, 
    indexof: 'off', 
    meanCount: '5', 
    resource: 'global', 
    prefermaskfilter: '', 
    rows: 10, 
    timezoneOffset: 0 
    }; 

    result = { 
     label: "hello, world" 
    }; 
} 
関連する問題