Ember.js Ember动态段在路由中不可用

Ember.js Ember动态段在路由中不可用,ember.js,ember-data,Ember.js,Ember Data,我在Ember中设置了以下路由器,我试图捕获一个动态搜索词并将其传递给路由器以查询Ember数据 路由器 this.resource('resources', function() { this.resource('resource', { path: '/:resource_id' }, function() {}); this.resource('search', { path: '/search/:search_term' }, function() {}); this.rou

我在Ember中设置了以下路由器,我试图捕获一个动态搜索词并将其传递给路由器以查询Ember数据

路由器

this.resource('resources', function() {
  this.resource('resource', { path: '/:resource_id' }, function() {});
  this.resource('search', { path: '/search/:search_term' }, function() {});
  this.route('new');
});
路线

export default Ember.Route.extend({
  model: function(params) {
    return this.store.findQuery('resource', {
      sTerm: params.search_term,
      limit: 15,
      offset: 0      
    });
  }
});
不幸的是,在传递到查询的路径中,搜索项不可用,我不确定是什么原因导致此项不起作用。如果有人能给我指出正确的方向,我将不胜感激。谢谢

按要求更新

记录this.constructor会产生以下结果:

lrs-ui@route:搜索/索引:

我已经用ember cli构建了它,路由在搜索/索引中,因此这很有意义。我应该在搜索时知道路线吗

回答


正如@kingpin2k所示,该路由处于搜索/索引中,需要处于搜索中,然后一切正常。

出于历史原因,索引路由不会从父资源获取参数


将路由从“搜索/索引”更改为“搜索”解决了问题。

我假设这是搜索路由,访问路由时的url是什么,当它碰到模型挂钩时,参数中有什么?是的,这是搜索路由,我访问的url是:
/resources/search/cc-17-14
我只需要将最后一块
cc-17-14
传递到路由,这样我就可以在商店查询中使用它,当我转到这个地址时,路由中的params变量中没有任何内容。老实说,我唯一能想到的是,它不是搜索路由,这是搜索索引路径,或者类似的东西……请将此添加到模型钩子中,并用它的输出更新问题:
console.log(this.constructor)
@kingpin2k如果您找到了它,该路径最初是在搜索/索引处,它没有获取参数。将路线移动到仅搜索解决了问题。非常感谢。