ember.js
2016-03-26 15 views 1 likes 
1

In Ember.js kann query-params mit link-to verwendet werden, um Verknüpfungen zu generieren, die eine Abfragezeichenfolge enthalten. Zum Beispiel:Beliebige Abfrageparameter auf Ember.js

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

Was nicht sofort ersichtlich ist, wie beliebige Parameter query-params passieren. Dies ist: Übergeben eines Objekts, dessen Schlüssel/Werte die Abfragezeichenfolge bilden. Zum Beispiel der folgende (der einen Fehler wirft):

// 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> 

Blick auf Embers Quellcode, kann ich sehen, wie dies getan werden kann. Ich kann ein Objekt zusammenstellen, das wie die von query-params zurückgegebenen aussieht. Wohl wahr, wird die folgende Aufgabe durch link-to interpretiert werden, wie ich will:

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

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

jedoch, dass sieht aus wie eine interne, private Schnittstelle zu mir. Meine Frage ist also: Gibt es einen zugelassenen Weg, dies zu tun? (Und was ist das?)

Antwort

2

Die einzige Lösung ist im Moment Ihre eigenen Helfer zu erstellen:

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

dann verwenden, wie

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

Dieser von Ember unterstützt werden könnte. Öffnen Sie einen RFC oder erstellen Sie ein Addon mit diesem Helfer! :)

Verwandte Themen