【发布时间】:2014-08-12 19:16:16
【问题描述】:
这是我的路由器:
this.resource('catalog', function(){
this.route('products'),
this.route('product', {path: 'product/:id'})
});
catalog/products 是所有产品的概览。如果单击一个产品,您将转换为catalog/product/123,而123 是产品的ID。在概览中还有一个New product 按钮,您可以在其中创建新产品。在我的代码中,此按钮后面有以下转换:
actions: {
new: function(){
this.transitionToRoute('catalog.product', null);
}
}
当时的 URL 是:catalog/product/undefined,我认为一切都很好,因为没有 id,因为这个产品是新的,稍后会保存。但是我的setupController 和CatalogProductRoute 的说法不同:
setupController: function(controller, model){
var productId = model.id;
if(productId){
console.log('product exists with id: ' + productId);
} else {
console.log('product does not exist');
}
}
不幸的是,productId 的值是 undefined,因此第一个 if 子句为真,但我认为它类似于 null,因为我在 transitionToRoute 中交出了 null。我该如何解决这个问题?我做错了什么?
【问题讨论】:
标签: url ember.js controller entity slug