Ember.js 恩贝鲁斯。Params.Param1未定义

Ember.js 恩贝鲁斯。Params.Param1未定义,ember.js,Ember.js,我有这样的路线: App.Router.map(function() { // put your routes here this.resource('about'); this.resource('querydefault'); this.resource('query', {path:':query_done'}, function() { this.route('time', {path:':time_interval'}); }); }); 从此链接过渡到 当我试图检索查询时,

我有这样的路线:

App.Router.map(function() {
// put your routes here

this.resource('about');
this.resource('querydefault');
this.resource('query', {path:':query_done'}, function() {
  this.route('time', {path:':time_interval'});
}); 
});
从此链接过渡到

当我试图检索查询时,done是未定义的

App.QueryTimeRoute = Ember.Route.extend({
  model:  function (params) {
   params.time_interval; (24) OK   
   params.query_done; UNDEFINED 

参数由处理它们的资源使用。如果您不需要任何
/query
资源,可以执行以下操作:

App.Router.map(函数(){
本资源(“关于”);
此.resource('querydfault');
this.resource('query',{path:'},function()){
this.route('time',{path:'/query/:query\u done/time/:time\u interval'});
});
});
然而,我相信真正惯用的解决方案是让资源在其级别上使用第一个参数,然后将其传递给子资源/路由

App.Router.map(函数(){
本资源(“关于”);
此.resource('querydfault');
this.resource('query',{path:'/query/:query_done'},function(){
this.route('time',{path:'/time/:time\u interval'});
});
});
App.QueryRoute=Ember.Route.extend({
型号:功能(参数){
console.log(“/Query Query\u done:+params.Query\u done);//确定
返回{
queryDone:params.query\u完成//在此处传递
};
}
});
App.QueryTimeRoute=Ember.Route.extend({
型号:功能(参数){
console.log(“QueryTime query\u done:+params.query\u done);//空
log(“QueryTime time\u interval:+params.time\u interval);//确定
console.log(“来自父资源:”+this.modelFor(“query”).queryDone);//通过此处检索它
返回{};
}
});

工作演示。

谢谢!但我正在返回Ajax承诺,我怎么能同时返回该参数??我当前的返回:return-Ember.$.ajax(…然后(函数(数据){return-data.responseData.feed.entries.map(函数(post){return-post;});});我想您可以将其附加到模型。
…然后(函数(数据){var-arr=data.responseData.feed.map(/*…/);arr.queryDone=params.query_done;return arr;})
。但我不确定这是最好的方法。我会仔细考虑,如果我找到更好的解决方案,我会发布另一个答案。好的,非常感谢!我会尝试,非常有用
App.QueryTimeRoute = Ember.Route.extend({
  model:  function (params) {
   params.time_interval; (24) OK   
   params.query_done; UNDEFINED