2016-03-26 10 views
1

Ember.jsでquery-paramsと使用して、link-toを使用してクエリ文字列を含むリンクを生成できます。例えば:すぐに明らかではない何Ember.js上の任意のクエリパラメータ

<p>{{link-to "Search" 'search' (query-params q='london')}}</p> 

query-params任意パラメータを渡す方法です。これはキー/値がクエリ文字列を作るオブジェクトを渡すことです。 (エラーがスローされた)次の例の場合:エンバーのソースコードを見てみると

// At the component 
myParams: { 
    q: 'london', 
}, 

{{!-- At the template --}} 
<p>{{link-to "Search" 'search' (query-params myParams)}}</p> 

<!-- The end result --> 
<p><a href="https://stackoverflow.com/search?q=london">Search</a></p> 

、私はこれを行うことができるかを見ることができます。私はquery-paramsによって返されたもののようなオブジェクトをまとめることができます。

// At the component 
myParams: { 
    isQueryParams: true, 
    values: { 
    q: 'london', 
    }, 
}, 

{{!-- At the template --}} 
<p>{{link-to "Search" 'search' myParams}}</p> 

しかし、それは私には内部、プライベートインターフェイスのようになります。真の十分な、次のオブジェクトは、link-toで私が望むように解釈されます。だから私の質問です:これを行うための承認された方法はありますか? (?そして、それが何であるか)

答えて

2

現時点で唯一の解決策は、独自のヘルパーを作成することです:

// app/helpers/hash-query-params.js 
import Ember from 'ember'; 

export function hashQueryParams([hashParams]) { 
    return Ember.Object.create({ 
    isQueryParams: true, 
    values: hashParams 
    }); 
} 

export default Ember.Helper.helper(hashQueryParams); 

そしてこれは、エンバーによってサポートされる可能性が

<p>{{link-to "Search" 'search' (hash-query-params myParams)}}</p> 

のようにそれを使用しています。このヘルパーでRFCを開くか、アドオンを作成してください! :)

関連する問題