在我的应用程序中,我想读取用户输入的参数,然后我想使用该参数。 http://responsive.beta.postify.com/X我想读取X值。但首先我如何确保路由器需要一个参数?
我的路由器就像这样
Cards.Router.map(function ()
{
this.resource('cards', {path: '/'}, function ()
{
// additional child routes
this.resource('selectImage');
this.resource('message');
this.resource('recipient');
this.resource('orderStatus');
this.resource('thankyou');
this.resource('accountInfo');
this.resource('recentOrders');
this.resource('howTo');
this.resource('faq');
});
});
每当应用加载时我都想要该参数。这将是我的clientID,我将根据客户端从服务器获取数据。
有什么想法吗?
当我做这样的事情时
Cards.Router.map(function ()
{
this.resource('cards', {path: ':clientID'}, function ()
{
// additional child routes
this.resource('selectImage');
this.resource('message');
this.resource('recipient');
this.resource('orderStatus');
this.resource('thankyou');
this.resource('accountInfo');
this.resource('recentOrders');
this.resource('howTo');
this.resource('faq');
});
});
并且在我的浏览器中,如果我像这样http://responsive.beta.postify.com/#/26那么它的工作,但如果我喜欢http://responsive.beta.postify.com/26那么它就不起作用了。
答案 0 :(得分:0)
要直接回答您的问题,要在路线中使用参数,您可以执行以下操作:
this.resource('cards', { path: '/:user_id' });
然后在你的路线
App.CardsRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('post', params.user_id);
}
});
这是您在特定路线中获取参数的方法。现在,就您的应用程序而言,使用上面发布的代码,只要他们在第一次加载时访问应用程序的根目录('/')并在网址中包含user_id,就可以获得该参数。
我建议采用不同的策略来获取client_id并将其存储在应用程序的后续用户中。例如,在我的应用程序中,我有一个Ember.Application.initializer({}),我存储了client_id。一切都取决于您的服务器配置以及您的应用程序的构建方式,但如果可以,我肯定会尝试以不同的方式获取client_id!
祝你好运。