WedX - журнал о программировании и компьютерных науках

Как рендерить шаблон в розетку из другого шаблона

Мое приложение будет иметь боковую панель с содержимым, которое меняется в зависимости от текущего маршрута. Таким образом, если кто-то посещает account, контент на боковой панели будет отличаться от того, если кто-то посещает members.

Я пытался сделать это с маршрутом accounts, но у меня возникли проблемы. я использую этот код

Dashboard.AccountRoute = Ember.Route.extend({
        renderTemplate: function() {
                this.render('account_choices', {
                        outlet: 'choices',
                        into: 'sidebar'
                })
        }
});

Мой шаблон application:

{{render header}}

{{render sidebar}}

<div id="outlet" class="main">
        {{outlet}}
</div>

и мой шаблон sidebar:

<div class="sidebar">
        {{outlet choices}}
</div>

Но он не будет отображать account_choices в выходе choices в шаблоне sidebar. Так же выдает ошибку Assertion failed: Error while loading route: TypeError: Cannot call method 'connectOutlet' of undefined.

Как я могу отобразить шаблон account_choices в розетке choices в sidebar?

27.12.2013

Ответы:


1

Это немного сложно объяснить, но весь путь подключен заранее, и именованный выход sidebar не существует, пока они не будут отрисованы. К счастью, вы можете просто подключить рендер позже в цикле выполнения, и к тому времени dynamic named outlet уже будет существовать.

renderTemplate: function() {
  var self = this;
  Em.run.later(function(){
    self.render('account_choices', {
      outlet: 'choices',
      into: 'sidebar'
    });
  });
 }

https://emberjs.jsbin.com/azimigEF/1/edit

28.12.2013
  • На крючке renderTemplate sidebar или account? 28.12.2013
  • Я только что попробовал, и это работает, но только тогда, когда я иду по этому маршруту. Когда я нахожусь на этом маршруте и обновляюсь, что означает, что я посещаю /accounts напрямую, происходит сбой с этим сообщением об ошибке. 28.12.2013
  • Вау, спасибо! Я думаю, что вы ответили почти на все мои вопросы об Ember, так что спасибо и за это. :-) 28.12.2013
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]