我正在使用液体火在Ember.js中打开一个模态窗口。我有几乎两个相同的部分 - 路线,控制器和模板都非常相似,但由于某些原因,我无法调试,一个部分产生一种奇特的视觉效果,几乎就像模态是打开,关闭然后重新-opening。
http://staging.ckdu.ca/shows http://staging.ckdu.ca/schedule
想知道是否有人看到过类似的东西,可能有任何建议。
这就是代码的样子:
router.js:
Router.map(function() {
this.modal('show-modal', {withParams: ['show_id'], otherParams: 'show'});
this.resource('schedule', function () {});
});
application controller.js:
import Ember from "ember";
export default Ember.Controller.extend({
queryParams: ['show_id'],
show_id: null
});
时间表/索引/ controller.js:
import Ember from "ember";
export default Ember.Controller.extend({
needs: ['application'],
filteringByCategory: null,
init: function() {
var show_id = this.get('controllers.application').get('show_id');
if (show_id !== null) { this.setShow(show_id); }
this._super();
},
setShow: function (show_id) {
if (show_id !== null) {
var app = this.get('controllers.application');
var show = this.store.find('show', show_id);
app.set('show_id', show_id);
app.set('show', show);
}
return false;
},
actions: {
openShowModal: function (show_id) {
this.setShow(show_id);
return false;
}
}
});
时间表/索引/ route.js:
import Ember from 'ember';
export default Ember.Route.extend({
model: function () { return this.store.all('time_slot'); },
setupController: function (controller, model) {
controller.set('model', model);
}
});
时间表/索引/ template.hbs:
<div {{action 'openShowModal' slot.show_id}}>
transitions.js:
export default function() {
var duration = 100;
this.transition(
this.use('fade', {duration: duration}),
this.reverse('fade', {duration: duration})
);
this.transition(
this.fromRoute('shows.index'),
this.toRoute('shows.show'),
this.use('scrollThen', 'toLeft', {duration: duration}),
this.reverse('scrollThen', 'toRight')
);
}
答案 0 :(得分:1)
在此Ember Observe Returns Callback Twice When Used With Query Params的帮助下计算出来。
重点是Ember查询参数,根据上面的Stack Overflow答案,转换为字符串。
我的节目部分正在访问Show模型,此模型使用默认的id属性,其中我的计划部分使用的是TimeSlot模型,该模型具有我手动设置为DS.attr的show id属性('数')。
因此,对于我的日程安排部分,我设置了查询参数,它改变了一次 - 并且液体火灾观察到更改并开始其进程 - 然后查询参数转换为字符串,第二次更改它 - 而液体火也观察到了变化,并自行中断等等。
无论如何,感谢@runspired为您提供帮助。