2

我有以下路线:

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

而且我希望能够轻松访问我的路由器和控制器中的变量 :user 和 :on_date 。我已经想出了一种方法来访问它,但这在很大程度上是一种 hack。在我的控制器中,我可以这样做:

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]});
    },
});

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

4

1 回答 1

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

于 2013-08-12T09:24:20.420 回答