这是我的路线配置(使用ember-cli的route.js)
this.resource('xero-invoices', {path:'/loans/xero/:loan_id/invoices'})
但是在尝试路由此地址时,ember会切断查询字符串。如何解决问题?
答案 0 :(得分:0)
你的路线定义部分有一个小错字错过了一个闭合的大括号,但我认为这不是真正的问题。为清楚起见,这里是固定的。
this.resource('xero-invoices', {path:'/loans/xero/:loan_id/invoices'})
上面的资源有一个动态段lone_id
而不是查询字符串。查询字符串支持目前处于Ember的beta版本中,而不是稳定的。您尝试使用的任何查询字符串功能都将在您的控制器中处理。 http://emberjs.com/guides/routing/query-params/
如果你有一个jsbin或更多代码,我可能会更有帮助。
这是一个简单的jsbin,显示动态细分工作 - http://emberjs.jsbin.com/casana/1/edit
编辑:
在您的示例jsbin中,您尝试使用(query-parms)
帮助link-to
,仅当您使用的是Ember的beta版时才可以使用oauth_token
帮助程序。在应用程序控制器中,如果从应用程序模板中删除它,则不会出现错误。在您的路由中,由于您将查询参数作为模型返回,因此可以通过控制器中的model
属性访问App = Ember.Application.create();
App.Router.map(function() {
this.resource('xero-invoices', { path:'/loans/xero/:loan_id/invoices' });
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return ["red","blue","green"];
}
});
App.XeroInvoicesRoute = Ember.Route.extend({
model: function(params) {
window.console.log(params);
return params.queryParams["oauth_token"];
}
});
。
来源:http://jsbin.com/bufukiqisika/8/edit
<script type="text/x-handlebars">
<h2>Welcome to Ember.js</h2>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="xero-invoices">
{{model}}
</script>
模板:
{{1}}
示例:http://jsbin.com/bufukiqisika/8#/loans/xero/09870987/invoices?oauth_token=foo
答案 1 :(得分:0)
您可以使用在控制器上定义的查询参数。
这样的事情应该有效:
MyController = Ember.Controller.extend({
queryParams: ['searchvalue'],
searchvalue : null
})
在你的模板:
{{input type="text" valueBinding=controller.searchvalue}}
因此,您的搜索值将在网址中显示,例如“... / MyApp的/ SEACH?searchvalue = foo”的