Ember.js 使用ember访问适配器内的路由参数

Ember.js 使用ember访问适配器内的路由参数,ember.js,Ember.js,我在访问适配器中的当前路由参数时遇到问题。我试着在存储中查找并键入传入的对象,但没有找到任何内容 我知道我可以使用window.href.location访问url字符串并进行一些操作来访问route param,但是我不喜欢硬编码,因为url可能会更改。我建议您使用传递给用于查询数据的方法的查询参数 查看rest适配器的queryRecord()的默认实现: 它可以访问query参数并使用buildURL,您可以重写函数buildURL()或query(),并根据需要对其进行调整 之后需要做的

我在访问适配器中的当前路由参数时遇到问题。我试着在存储中查找并键入传入的对象,但没有找到任何内容


我知道我可以使用window.href.location访问url字符串并进行一些操作来访问route param,但是我不喜欢硬编码,因为url可能会更改。

我建议您使用传递给用于查询数据的方法的查询参数

查看rest适配器的
queryRecord()
的默认实现:

它可以访问query参数并使用buildURL,您可以重写函数
buildURL()
query()
,并根据需要对其进行调整

之后需要做的是使用路由或控制器从url读取查询参数,并将查询对象传递到存储区以反映您的需要


这是指向以下内容的链接

您的用例是什么,为什么在适配器中需要路由参数?为什么不能在路由/控制器中使用它们?我需要一个路由参数来创建我的请求url@PavolI。我正在使用不支持查询参数的this.store.findAll获取记录。我已尝试引用我的模型并使用model.get('doc_fragment'))但是,我的ajax调用没有发出,而且我的适配器似乎根本没有被调用。对于您的模型,什么是
doc\u fragment
?要异步加载的属性?为什么它与你的主要问题有关,我当时看不出这种关系。您是对的,
findAll()
现在不支持查询参数。我记得同样的问题,并通过切换到从控制器调用
query()
,但在适配器中委托到
find()
,解决了它,尽管这是一个肮脏的解决方案。
    query(store, type, query) {
      var url = this.buildURL(type.modelName, null, null, 'query', query);

      if (this.sortQueryParams) {
        query = this.sortQueryParams(query);
      }

      return this.ajax(url, 'GET', { data: query });
    },