2015-03-21 2 views
0

Я использую жидкий огонь, чтобы открыть модальное окно в Ember.js. У меня почти два одинаковых раздела - маршрут, контроллер и шаблон - все очень похоже, но по какой-то причине я не смог отлаживать, один раздел создает особый визуальный эффект, почти как будто модальный открывается, закрывается, а затем повторно -Открытие.Liquid Fire Modal Odd Effect или Open/Close/Open?

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() {}); 
}); 

приложений 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; 
    } 
    } 
}); 

расписание/индекс/r oute.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

Каковы ваши правила перехода? – runspired

+0

@runspired Я обновил свой вопрос с существенными частями файла перехода. –

+0

Я вижу, что вы открыли проблему в Github, учитывая то, что вы разместили здесь и ковыряетесь на своем сайте, происходит какое-то конфликтное правило, которое неожиданно. Возможно, это связано с тем, что queryParam находится на контроллере другого маршрута, и более чем одно правило перехода/правила становится правильным. – runspired

ответ

1

Фигурные это с помощью этого Ember Observe Returns Callback Twice When Used With Query Params.

Важным моментом является то, что параметры запроса Ember, в соответствии с вышеприведенным ответом о переполнении стека, преобразуются в строки.

Мой раздел показывает доступ к модели Показать, и эта модель использовала атрибут id по умолчанию, в котором в моем разделе расписания использовалась модель TimeSlot, которая имела атрибут для идентификаторов показа, которые я установил вручную как DS.attr ('номер').

Итак, для моего раздела расписания я задавал параметр запроса, который менял его один раз - и сжигание жидкости наблюдало это изменение и начало его процесс - и затем этот запросParam был преобразован в строку, которая изменила его во второй раз - и в случае пожара наблюдалось это изменение, а также прервалось и т. Д.

Во всяком случае, спасибо @runspired за вашу помощь в этом.

Смежные вопросы