液体火模式奇效或打开/关闭/打开?

时间:2015-03-21 00:32:32

标签: javascript ember.js

我正在使用液体火在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')
  );

}

1 个答案:

答案 0 :(得分:1)

在此Ember Observe Returns Callback Twice When Used With Query Params的帮助下计算出来。

重点是Ember查询参数,根据上面的Stack Overflow答案,转换为字符串。

我的节目部分正在访问Show模型,此模型使用默认的id属性,其中我的计划部分使用的是TimeSlot模型,该模型具有我手动设置为DS.attr的show id属性('数')。

因此,对于我的日程安排部分,我设置了查询参数,它改变了一次 - 并且液体火灾观察到更改并开始其进程 - 然后查询参数转换为字符串,第二次更改它 - 而液体火也观察到了变化,并自行中断等等。

无论如何,感谢@runspired为您提供帮助。