Javascript 在Ember中,我如何才能找到像store.query这样的调用将命中的确切URL?

Javascript 在Ember中,我如何才能找到像store.query这样的调用将命中的确切URL?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,当调试我的API时,我想知道,对于给定的代码行 store.query('foo', {filter: ...}) 这到底是什么URL导致余烬击中。目前,为了找到答案,我只需打开devtools并在network选项卡中查找请求 这并不理想,因为: 如果有很多相关的网络请求,则很难找到它们 我必须做一个完整的刷新,等待页面加载 有没有更好的方法,也许是使用低级API的编程方法 我要找的东西是: store.buildRequest('query', 'foo', {filter: ...}

当调试我的API时,我想知道,对于给定的代码行

store.query('foo', {filter: ...})
这到底是什么URL导致余烬击中。目前,为了找到答案,我只需打开devtools并在network选项卡中查找请求

这并不理想,因为:

  • 如果有很多相关的网络请求,则很难找到它们
  • 我必须做一个完整的刷新,等待页面加载
有没有更好的方法,也许是使用低级API的编程方法

我要找的东西是:

store.buildRequest('query', 'foo', {filter: ...}).url()

在应用程序适配器中,覆盖
urForQuery


在应用程序适配器中,覆盖
urForQuery


您可以通过扩展store服务并在模型的适配器上调用该方法来创建这个确切的方法

// services/store.js
export default Ember.Service.extend({

  buildRequestURL(requestType, modelName, data) {
    let id, query;

    // determine if a query or an id
     if (Ember.typeOf(data) === 'object') {
      query = data;
    } else {
      id = data;
    }

    return this.adapterFor(modelName) // retrieve the adapter for your model                     
      .buildURL(                      // build the url for your request
        modelName, 
        id, 
        null, 
        requestType, 
        query
      ); 
  }
});
buildURL
根据请求类型在内部调用特定的url构建方法。(
urlForFindRecord
urlForQuery
,.etc)

您使用它的方式与您的建议基本相同(只是最后没有
.url()
):


您可以通过扩展store服务并在模型的适配器上调用该方法来创建这个确切的方法

// services/store.js
export default Ember.Service.extend({

  buildRequestURL(requestType, modelName, data) {
    let id, query;

    // determine if a query or an id
     if (Ember.typeOf(data) === 'object') {
      query = data;
    } else {
      id = data;
    }

    return this.adapterFor(modelName) // retrieve the adapter for your model                     
      .buildURL(                      // build the url for your request
        modelName, 
        id, 
        null, 
        requestType, 
        query
      ); 
  }
});
buildURL
根据请求类型在内部调用特定的url构建方法。(
urlForFindRecord
urlForQuery
,.etc)

您使用它的方式与您的建议基本相同(只是最后没有
.url()
):

// get the url for for store.query('foo', { filter: ... })
const urlQuery = store.buildRequestURL('query', 'foo', { filter: ... });

// get the url for store.findRecord('bar', 1);
const urlFind = store.buildRequestURL('findRecord', 'bar', 1);

// ...