【发布时间】:2015-11-08 19:50:36
【问题描述】:
我在使用带有 pod 结构的 slug 时遇到了困难。特别是当我尝试直接进入列表页面时,它不起作用。 Slug 是模型中的计算属性。
余烬-v: 版本:1.13.1, 节点:0.12.7, npm:2.12.1,
app/listings/show/route.js
export default Ember.Route.extend({
model(params) {
console.log('MODEL params.pageslug', params.page_slug);
var listings = this.modelFor('listings');
return listings.findBy('slug', params.page_slug);
},
serialize(model, params) {
console.log('SERIALIZE model slug', model.get('slug'));
return { page_slug: model.get('slug') };
}
});
app/router.js
Router.map(function() {
this.route('listings', function() {
this.route('show', { path: ':page_slug' });
});
});
当我直接转到 /listings/slug 时,我看不到任何控制台日志。 Ember 给Preparing to transition from '' to ' not-found'Transitioned into 'not-found'(未找到的是我们的404路由)
当我直接转到 /listings/listing_id 时(即:/listings/1),我看到我的 MODEL 日志 params.page_slug 为“1”,并且加载了正确的页面而没有任何模型属性。 Ember 给 Preparing to transition from '' to ' listings.show' Transitioned into 'listings.show'
如果我要转到 /listings 然后单击一个列表,我的 SERIALIZE 日志将显示正确的 slug 值,但没有模型日志。所以它似乎跳过了我的 model() 函数(我假设是因为模型已经从 /listings 给出)
我觉得我在这里误解了一些简单的东西。
【问题讨论】:
-
做更多的工作,模型函数中的 findBy() 返回 undefined。