2013-08-11 2 views
1

Я уже открыл тему и удалю ее, так как не задал вопрос правильно. Я прошу прощения за неудобства.Emberjs - отображение данных

Итак, вопрос заключается в следующем. У меня есть главная страница, которая должна отображать все объекты, определенные в FIXTURES. Теперь, насколько я понимаю emberjs и handlebars, на главной странице может быть тег {{outlet}}, где содержимое отображается, в соответствии с URL.

Моя проблема заключается в том, что у меня есть один экран, где по умолчанию массив отображается, а по щелчку отображается страница с подробной информацией. Итак, я должен использовать {{outlet}}, так как у меня есть две «страницы» или, скорее, «router.maps»: главная и подробная информация (см. Код ниже).

Если я отображаю массив напрямую, когда я нажимаю детали, массив все еще там. Если я использую {{}} на выходе, я должен по умолчанию перенаправлять пользователя на главную страницу, так как я сделал:

App.Router.map(function(){ 
     this.resource("main"); 
     this.resource("details", {path: ':image_id'}); 
    }); 

    App.ApplicationRoute = Ember.Route.extend({ 
      redirect: function() { 
      return this.transitionTo('main'); 
      } 
     }); 

    App.MainRoute = Ember.Route.extend({ 
     model: function(){ 
      return App.Images.find(); 
     } 
    }); 

Что было бы идеальным решением в этом случае?

Кроме того, работает DS.Store, например, sessionStorage? Если я «сохраняю» данные в файле insert.html, а затем перейду в view.html, будут ли эти данные отображаться там, когда файлы .js загружаются заново?

Еще раз спасибо за вашу поддержку.

+0

Я понимаю вас правильно, вы хотите, чтобы ваш список изображений оставался отображаемым, пока отображается подробная страница? – intuitivepixel

ответ

1

Что было бы идеальным решением в этом случае?

Я бы рекомендовал установить путь к '/' для основного маршрута вместо перенаправления.

App.Router.map(function(){ 
    this.resource("main", {path: '/'}); 
    this.resource("details", {path: ':image_id'}); 
}); 
App.MainRoute = Ember.Route.extend({ 
    model: function(){ 
    return App.Images.find(); 
    } 
}); 

Кроме того, делает DS.Store работать, как, например, sessionStorage? Если я «сохраняю» данные в файле insert.html, а затем перейду в view.html, будут ли эти данные отображаться там, когда файлы .js загружаются заново?

Это не так. Подумайте о DS.Store как кэш в памяти, он будет доступен до тех пор, пока ваше приложение ember будет запущено, но многое будет сохраняться при обновлении браузера. Ember Data поддерживает множество различных адаптеров, если вы хотите использовать локальное хранилище, вы можете попробовать localstorage-adapter

+0

Настройка на корень - отличная идея. Спасибо! –

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