如何使用ember-data将查询参数传递给后端?

时间:2014-12-23 08:02:32

标签: ember.js ember-data

我正在试图通过我的第一个Ember.js应用程序,并努力弄清楚如何采用我的样板/基于教程的代码并让它将参数传递到我的Flask后端。

我想根据邮政编码提供本地活动,邮政编码会传递到后端。

我遇到了关于选择完全转换(http://emberjs.com/guides/routing/query-params/#toc_opting-into-a-full-transition)的此页面,现在看到的是参数名称,但没有看到通过API请求的值。

我在浏览器中访问此网址:http://localhost:5000/?zip=21210

我得到了:

127.0.0.1 - - [22/Dec/2014 23:20:51] "GET /?zip=21210 HTTP/1.1" 200 - # first call to load page
127.0.0.1 - - [22/Dec/2014 23:20:52] "GET /api/v1/events?zip= HTTP/1.1" 200 - # call to API

我的app.js文件:

App = Ember.Application.create();

App.Router.map(function() {
    location: 'auto'
  // put your routes here
  //this.resource('events', {path: '/'})
});

//var attr = DS.attr;

DS.RESTAdapter.reopen({
  namespace: 'api/v1'
});

App.Event = DS.Model.extend({
    name: DS.attr('string'),
    address: DS.attr('string')
});


App.IndexRoute = Ember.Route.extend({
    queryParams: {
        zip: {
            refreshModel: true
        }
    },
  model: function(params) {
    return this.store.findQuery('event', params);
  }
});

App.IndexController = Ember.ArrayController.extend({
    queryParams: ['zip'],
    zip: null
});

1 个答案:

答案 0 :(得分:1)

queryParamszip绑定到控制器中zip的属性null。这就是您看到一个空的zip参数传入服务器的原因。

确保为zip属性分配一个非空值,您将不再看到zip参数为空。