query-params-new标志设置为true。
使用最新的ember和ember数据。 Ember:1.6.0-beta.1 + canary.b5b90241 ember.js和Ember数据:1.0.0-beta.7 + canary.b45e23ba
Application Adapter设置为:
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
作为请求。
我一定错过了什么?
答案 0 :(得分:5)
要使query-params-new按预期工作,您需要做一些事情。
首先,你说你正在使用最新的余烬,但不指定它是最新的稳定版本还是最新的canary版本(master)。为了使用query-params-new,你需要使用canary,它只是master分支。它尚未在稳定版或测试版中提供,但您可以download it here。
其次,您需要在控制器中指定要绑定到路径的参数。您的位置控制器需要看起来像这样:
export default Ember.ArrayController.extend({
queryParams: ['lat', 'lon', 'limit']
});
所有这些都记录在Ember网站上。 http://emberjs.com/guides/routing/query-params/
根据其他问题信息进行修改:
看起来你没有在路线中使用参数。您可以使用findQuery
将params发送到服务器,如下所示:
export default Ember.Route.extend({
model: function(params){
return this.store.findQuery('restaurant', params);
}
});