【问题标题】:Ember.js find with plain object is not workingEmber.js 用普通对象查找不起作用
【发布时间】:2015-05-31 15:38:37
【问题描述】:

我使用 Ember.js 来获取这样的项目:

App.MyData.find()

并得到这样的项目:

App.MyData.find(itemId)

然后我使用过滤器并在模型函数中返回它,如下所示:

App.MyRoute = Ember.Route.extend({   
    model: function()   {
        return App.MyData.find().filter(function(a)
        {
            return a.get('desc') != null;
        });
    } 
});

而且它工作得很好。

现在我想将另一个参数传递给底层 PHP 脚本返回项目。所以我使用了“查询记录desc”:

"如果您提供一个普通对象作为 find 的第二个参数,Ember Data 将使用序列化作为查询参数的对象发出 GET 请求。此方法返回 DS.PromiseArray 与 find 相同,没有第二个参数论据。”

根据文档,它的行为方式应该与没有普通对象参数的 find 相同。

但事实并非如此。我的视图不再显示。

我检查了 GET 请求。它返回完全相同的数据。

我在 JS 中没有错误。

如何在获取项目的同时将参数传递给 PHP?

【问题讨论】:

  • 能否请您发布由您的find 函数生成的URL。以及带有查询的查找功能?
  • 您还使用了非常旧版本的 ember-data,我不确定当时是否支持查询。
  • @albertjan 你的意思是 GET 查询?就像 .../mydata?param=value 所以没关系,PHP的响应也很好。
  • @runspired 我的版本有一个查找功能,所以我认为它有点支持......还是不支持?

标签: javascript ember.js ember-data


【解决方案1】:

正如您在jsbin 中看到的那样,它确实有效。因此,如果它对您不起作用,您要么拥有一个非常旧的版本,要么您做错了其他事情。

我用这个来获取模型:

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('thing', { beer: 'heineken' });
  }
});

这导致了这个请求:GET /things?beer=heineken".

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多