2017-01-13 34 views
2

MeteorのブレーズプロジェクトでApollo graphqlを使用しようとしています。graphqlクエリにパラメータを渡すには?

私はswydo:blaze-apolloからパッケージを使用しています。 graphqlクエリを使用してmongoDBからデータを取得しても問題ありません。

// Using this one can get data 
const LOCATION_COUNTRY_QUERY = gql` 
{ 
    locations(location_type: "Country"){ 
     location_id 
     name 
     iso_code 
    } 
} 
`; 

Template.home.onCreated(function(){ 
    const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY}).get(); 
    console.log(country.locations); // Which will show an array list of country. 
}); 

しかし、私は、クエリにハードコード「国」にしたくありません。 Stringをクエリに渡して、他のlocation_typeでデータを取得したいとします。しかし、私はそれについての記事を見つけることはできませんし、単にパラメータをブロックするgqlの構文です。

誰もが似たような経験をしており、何か提案がありますか?

答えて

2

GraphQL変数を使用してジョブを実行できます。まず 、あなたのLOCATION_COUNTRY_QUERYに変数を宣言します。

const LOCATION_COUNTRY_QUERY = gql` 
query locationCountryQuery($locationType: String!){ 
    locations(location_type: $locationType){ 
     location_id 
     name 
     iso_code 
    } 
} 
`; 

は今、あなたは、クエリに新しいvariablesオプションを提供することができます。

Template.home.onCreated(function(){ 
    const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY, variables: {locationType: "Country"}).get(); 
    console.log(country.locations); // Which will show an array list of country. 
}); 
+0

おかげでたくさん!それは動作し、私に多くの時間を節約! –

関連する問題