绑定到URL参数

时间:2013-08-12 08:42:54

标签: ember.js ember-data

我有以下路线:

this.resource('activities', { path: '/activities' }, function() {
    this.route('on_date', {path: '/:user_id/:on_date'});
});

我希望能够轻松访问路由器和控制器中的变量:user和:on_date。我已经想出了一种获取此权限的方法,但这非常黑客。在我的控制器中,我可以这样做:

App.ActivitiesByDateRoute = Ember.Route.extend({
    model: function() {
        var params = this.router.location.location.hash.split('/');
        // note: location hash is api/activities/:user_id/:on_date
        return App.Activity.find({id:params[2], on_date: params[3]});
    },
});

虽然我很高兴这有效,但显然不是一个好的解决方案。任何指向实现必须是一个非常常见的用例的指针将不胜感激。

1 个答案:

答案 0 :(得分:1)

有一项功能可以直接检索动态模型上的参数。

App.ActivitiesByDateRoute = Ember.Route.extend({
    model: function(params) {
        return App.Activity.find({params.user_id, params.on_date});
    }
});

它应该有用。

参考:http://emberjs.com/guides/routing/specifying-a-routes-model/#toc_dynamic-models