如何接收transitionToRoute发送的变量

时间:2014-07-15 09:11:25

标签: ember.js

我在

读到

http://emberjs.com/guides/controllers/

以下代码:

我有一个搜索框,想要将搜索框的值发送到SearchController。

 App.ApplicationController = Ember.Controller.extend({   // the initial
 value of the `search` property   search: '',

   actions: {
     query: function() {
       // the current value of the text field
       var query = this.get('search');
       this.transitionToRoute('search', { query: query });
     }   } });

如何在SearchController中获取查询参数,然后在search.hbs中显示它?

我正在使用ember- cli。

路由器

import Ember from 'ember';

var Router = Ember.Router.extend({
  location: NENV.locationType
});

Router.map(function() {
  this.route('search');
});

export default Router;

我在routes / search.js

下设置了一条路线
export default Ember.Route.extend({
    model : function (params) {
        console.debug("hi");
        return params;
    },
   setupController: function(controller,model) {
    var query = model.query;
     console.debug("query is");
     console.debug(query);
  }
});

调试时出现错误:

  

ember传递的上下文对象比动态段

更多

谢谢, 大卫

1 个答案:

答案 0 :(得分:1)

您需要将搜索路线定义为动态,因此如果您将路线定义更改为此类

Router.map(function() {
  this.resource('search', {path: '/search/:query});
})

这应该像你期望的那样工作。如果有的话,请告诉我。

干杯!