3

我正在使用这个路由器代码:

Ngin.Router.map(function(match) {
    "use strict";
    this.route('index', {path: '/'});
    this.route('article', {path: '/technical/:url/'});
});

我需要以某种方式在serialize方法中获取单击的元素 url,以便我可以从模型中获取该文章的数据。我看起来很明显应该如何在 an 的情况下执行此操作,id但我不知道如何使用url.

4

2 回答 2

3

与 Ember 一样,解决方案很简单。唯一需要习惯的是,Ember 不是 jQuery,而 Ember 中的上下文是(或应该是)数据,也就是模型。

Ngin.ArticleRoute = Ember.Route.extend({
    serialize: function(model) {
        "use strict";
        return {
            url: model.get("url") + "/"
        };
    }
});

在这种情况下,必须像这样设置上下文:

{{#linkTo "article" article}}{{article.title}}{{/linkTo}}

就是这个。就如此容易。

于 2013-01-19T08:10:05.837 回答
1

您可以通过这种方式重新定义路线

Ngin.Router.map(function(match) {
    "use strict";
    this.route('index', {path: '/'});
    this.route('article', {path: '/technical/:url/'});
});

Ngin.ArticleRoute = Ember.Route.extend({
  model: function(params) {
    return Ngin.Article.find({'url': params.url});
  }
});

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

于 2013-01-18T21:51:05.183 回答