2015-03-22 2 views
2

Я в ситуации, когда мне нужны разные шаблоны для загрузки определенного устройства по тому же маршруту. Скажем, например, страница входа, это один маршрут, но нужно загрузить другой шаблон для 3-х устройств (рабочий стол, планшет, телефон). Первым шагом было бы задержание устройства, но тогда какой был бы лучший или эрбический способ приблизиться к этому?Тот же маршрут, но другой шаблон по устройству

Медиа-запросы - это не вариант, потому что я не хочу сокращать свое настольное окно и видеть планшеты или телефонные макеты.

ответ

0

Я бы сделал обнаружение браузера на сервере и подавал различные файлы шаблонов в зависимости от устройства. Напишите три набора шаблонов и скомпилируйте их в отдельные файлы Javascript, а затем загрузите правильный файл Javascript при загрузке страницы. Если вы назовете и скомпилируете все свои шаблоны одинаково, Ember никогда не узнает, что у вас разные шаблоны.

0

Вы можете отобразить другой шаблон, основанный на определенном состоянии, переписывая метод renderTemplate внутри вашего маршрута. Вот пример рендеринга случайного шаблона каждый раз, когда маршрут доступ:

App.ThatRoute = Ember.Route.extend({ 
    renderTemplate: function() { 
    var random = Math.random(); 
    console.log(random); 

    if(random > .5){ 
     this.render('template1'); 
    } 
    else { 
     this.render('template2'); 
    } 
    } 
}); 

Работа на jsbin here