【发布时间】:2012-10-30 20:14:35
【问题描述】:
我正在使用 Ember、Ember-data 和 Rails。
当我在车把视图中创建链接时,它会链接到 /clinic/undefined。我试图让查看代码创建一个看起来像:http://localhost:3000/#/clinic/1 但看起来像:http://localhost:3000/#/clinic/undefined 的链接。
任何想法为什么以及如何解决它?
查看:
<a {{action showClinic content.clinic href=true}}>Click here</a>
路由器:
root: Ember.Route.extend({
showClinic: Ember.Route.transitionTo('clinic'),
showDoctor: Ember.Route.transitionTo('doctor'),
index: Ember.Route.extend({
route: '/',
connectOutlets: function(router) {
router.get('applicationController').connectOutlet('main');
}
}),
clinic: Ember.Route.extend({
route: '/clinic/:clinic_id',
connectOutlets: function(router, clinic) {
router.get('applicationController').connectOutlet('clinic', clinic);
router.get('clinicController').connectOutlet('doctors', clinic.get('doctors'));
}
}),
doctor: Ember.Route.extend({
route: '/doctor/:doctor_id',
connectOutlets: function(router, doctor) {
router.get('applicationController').connectOutlet('doctor', doctor);
}
})
})
型号:
App.Doctor = DS.Model.extend({
name: DS.attr('string'),
clinic: DS.belongsTo('App.Clinic')
});
JSON:
{
doctor: {
id: 1,
clinic_id: 1,
name: "Dr. Who"
}
}
【问题讨论】:
-
如果您在模板中尝试,是否已定义 {{content.clinic}}?
-
是的。如果我插入
{{content.clinic}},我会得到<App.Clinic:ember425>,而{{content.clinic.name}}会按预期给出Smallville Clinic。 -
对不起,如果这听起来很痛苦,但你能把它扔进 jsFiddle 吗?我以前曾多次遇到完全相同的问题,而且在我真正改变事情并看看会发生什么之前,它的根源通常并不明显。我有一些直觉想测试一下。
标签: javascript ruby-on-rails-3 ember.js