2014-03-01 107 views
2

query-params-new標誌設置爲trueEmber查詢參數不在請求中發送參數

使用最新的餘燼和餘燼數據。燼:1.6.0-beta.1 + canary.b5b90241 ember.js和餘燼數據:1.0.0-beta.7 + canary.b45e23ba

應用適配器被設置爲這樣:

export default DS.RESTAdapter.extend({ 
    host: 'http://example.com', 
    namespace: 'api/v2', 
    headers: { 
    "ClientId": "a-key", 
    "Access-Control-Allow-Origin": "*", 
    "Access-Control-Allow-Headers": "X-Requested-With" 
    } 
}); 

的位置的路線是這樣的:

export default Ember.Route.extend({ 
    model: function(params){ 
    return this.store.find('restaurant'); 
    } 
}); 

的位置控制器看起來像這樣

export default Ember.ArrayController.extend({ 

    queryParams: ['lat', 'lon', 'limit'], 

    lat: null, 
    lon: null, 
    limit: null, 

}); 

導航到該網址http://example.com/locations?lat=47.620508&limit=22&lon=-122.349174 Ember數據發送http://example.com/locations作爲請求。

我必須錯過什麼?

回答

4

你需要做一些事情才能使query-params-new按預期工作。

首先,你說你正在使用最新的內容,但不要指定它是最新的穩定版本還是最新的金絲雀版本(主)。爲了使用query-params-new,你需要使用canary,它只是主分支。它尚未在穩定版或測試版發佈,但您可以使用download it here

其次,您需要在控制器中指定要綁定到路線的哪個參數。您的位置控制器需要如下所示:

export default Ember.ArrayController.extend({ 
    queryParams: ['lat', 'lon', 'limit'] 
}); 

所有這些都記錄在Ember站點上。 http://emberjs.com/guides/routing/query-params/

編輯基於額外的問題信息:

它看起來像你沒有使用PARAMS在您的路線。您可以使用findQuery到PARAMS發送給服務器,像這樣:

export default Ember.Route.extend({ 
    model: function(params){ 
    return this.store.findQuery('restaurant', params); 
    } 
}); 
+0

感謝我使用灰燼了答案:1.6.0-beta.1 + canary.b5b90241 ember.js和灰燼數據:1.0.0 -beta.7 + canary.b45e23ba和我的控制器看起來像這樣。我會用控制器更新這個問題。 – kiwiupover

+0

@kiwiupover我更新了我的答案,並根據您更新的問題提出了另一個建議。我決定留下最初的建議以防其他人遇到此問題。 –

+0

謝謝你beerlington!問題是我沒有解析路線中的參數。此外,該路線可以讀取'this this.store.find('locations',params)'。 – kiwiupover