場合によっては、ルーティング URL に問題が発生しました。これが私のルーターです:
contacts: Em.Route.extend({
route: '/contacts',
index: Em.Route.extend({
route: '/',
connectOutlets: function(router, context) {
App.contactsController.populate()
var appController = router.get('applicationController');
appController.connectOutlet('contactsList');
}
}),
show: Em.Route.extend({
route: '/:contactid',
connectOutlets: function(router, context) {
alert('show contact');
}
}),
doShowContact: function(router, event){
router.transitionTo('show', {contactid: event.context.id});
}
}),
doShowContact 内に入るとき、コンテキストとして「contactid」を指定し、「show」内のルートとして「/:contactid」を指定すると、ブラウザーの URL でたとえば「/contacts/3」が取得され、すべて問題ありません。
ただし、doShowContact では、 「contactid」ではなく「contact_id」をコンテキストとして指定し、 「/:contactid」ではなく「/:contact_id」をルートとして指定した場合。ブラウザの URL に「/contacts/undefined」が表示されます。
それを説明する方法はありますか?ありがとう!