我有一个简单的模板循环在一个ember-data模型上。在循环内部,我想提供一个简单的锚标记,将元素的id传递给路由器,这样我就可以转换到另一个ember视图。当我将鼠标悬停在链接上时,下面的内容显示href中的“undefined”,但是当我在路径中记录内容时,它就是ember-data模型(不仅仅是我想要的id)。
<script type="text/x-handlebars" data-template-name="session">
{{#each session in controller}}
{{session.id}}<br />
{{session.name}}<br />
{{session.room}}<br />
{{session.desc}}<br />
{{#each speaker in session.speakers}}
Speaker: {{speaker.name}}<br />
{{/each}}
<a {{action showSessionDetails session href=true}}>View Session Details</a>
<br /><br />
{{/each}}
</script>
这是路由器
CodeCamp.Router = Ember.Router.extend({
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
showSessionDetails: Ember.Route.transitionTo('sessionDetails'),
connectOutlets: function(router, context) {
router.get('applicationController').connectOutlet('session', router.get('store').findAll(CodeCamp.Session)>
},
index: Ember.Route.extend({
route: '/'
}),
sessionDetails: Ember.Route.extend({
route: '/session/:id',
connectOutlets: function(router, context) {
console.log("here " + context);
}
})
})
})
});
提前谢谢
答案 0 :(得分:0)
原来我只需要实现自己的序列化和反序列化方法
sessionDetails: Ember.Route.extend({
route: '/session/:session_id',
connectOutlets: function(router, session) {
router.get('applicationController').connectOutlet('session', session);
},
serialize: function(manager, session) {
return { "session_id": session.get('id') }
},
deserialize: function(manager, params) {
return CodeCamp.Session.find(params["session_id"]);
}
})