我正在使用此路由器代码:
Ngin.Router.map(function(match) {
"use strict";
this.route('index', {path: '/'});
this.route('article', {path: '/technical/:url/'});
});
我需要以某种方式获取serialize
方法中点击的元素网址,以便我可以从模型中获取该文章的数据。在id
的情况下,我看起来很明显应该如何做到这一点,但我不知道如何使用url
进行此操作。
答案 0 :(得分: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}}
就是这样。就这么简单。
答案 1 :(得分: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