gpt4 book ai didi

javascript - Ember Action - {{action showClinic Clinic}} 生成 'undefined' 的链接

转载 作者:行者123 更新时间:2023-11-28 02:38:05 25 4
gpt4 key购买 nike

我正在使用 Ember、Ember-data 和 Rails。

当我在 Handlebars View 中创建链接时,它链接到/clinic/undefined。我试图让 View 代码创建一个看起来像这样的链接: http://localhost:3000/#/clinic/1 但看起来像: http://localhost: 3000/#/clinic/未定义

有什么想法以及如何解决它吗?

查看:

<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"
}
}

最佳答案

这也发生在我身上,可能是与路由器中的序列化和反序列化相关的问题。当您反序列化 id 时,诊所的数据尚未加载,并且您会得到 id 属性的返回值 undefined。解决方案是在每个状态的反序列化方法中实现 Promise 模式。

您可以查看以下链接以获取更多信息: https://github.com/emberjs/ember.js/issues/1268#issuecomment-7893886 - promise 模式的实现。

Emberjs async routing - 了解更多信息和另一种选择

关于javascript - Ember Action - {{action showClinic Clinic}} 生成 'undefined' 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13146917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com