Невозможно использовать функциональность <yield> внутри тега <route> Riot router

Я не могу использовать <yeild from=""> функциональность внутри тега Riot.js

Пожалуйста, помогите мне понять, что я делаю не так

  • Содержимое внутри компонента шаблона, т.е.main-wrapper.tag никогда не обновляется
  • Я пытаюсь передать содержимое в шаблон с помощью <yeild to>тег riot.js.

URL-адрес Plunkr находится здесь http://plnkr.co/edit/MX4BytdKxgbkJHXtc5V9?p=preview

    <app-base>
   <router>
      <route path="user">
         here is the route content for user
         <main-wrapper clazz="fix-header">
            <yield to="navbartop">
               <navbartop-cmp></navbartop-cmp>
            </yield>
            <yield to="navbarleft">
               <navbarleft-cmp></navbarleft-cmp>
            </yield>
            <yield to="containercontent">
               <div class="row">
                  <containercontent-cmp></containercontent-cmp>
               </div>
            </yield>
         </main-wrapper>
      </route>
      <route path="partner">
         here is the route content for partner
         <main-wrapper clazz="fix-header">
            <yield to="navbartop">
               <navbartop-cmp></navbartop-cmp>
            </yield>
            <yield to="containercontent">
               <div class="row">
                  <containercontent-cmp></containercontent-cmp>
               </div>
            </yield>
            <yield to="footer">
               <footer-cmp></footer-cmp>
            </yield>
         </main-wrapper>
      </route>
   </router>
   <div class="green">
      <div> outside router</div>
      <main-wrapper clazz="fix-header">
         <yield to="navbartop">
            <navbartop-cmp></navbartop-cmp>
         </yield>
         <yield to="navbarleft">
            <navbarleft-cmp></navbarleft-cmp>
         </yield>
         <yield to="containercontent">
            <div class="row">
               <containercontent-cmp></containercontent-cmp>
            </div>
         </yield>
      </main-wrapper>
   </div>
   <style>
      .green{
      background-color:green;
      }
      route main-wrapper{
      min-height: 400px;
      min-width: 400px;
      background-color:pink;
      display:block;
      }
   </style>
</app-base>

1 ответ

Существует недокументированное поведение, заключающееся в том, что вложенные множественные включения в маршруты не компилируются до дочерних элементов.

Вы можете написать прокси-теги как братьев и сестер app-base в качестве обходного пути, например

<app-base>
  <router>
    <route path="user">
      <user/>  
    </route>
    <route path="partner">
      <partner/>      
    </route>

  </router>
  <style>
  .green{
    background-color:green;
  }
  main-wrapper {
    min-height: 400px;
    min-width: 400px;
    background-color:pink;
    display:block;
  }
  </style>
</app-base>

<user>
  <div class="green">
    <h1>User</h1>
    <main-wrapper clazz="fix-header">
      <yield to="navbartop">
          <navbartop-cmp></navbartop-cmp>
      </yield>
      <yield to="navbarleft">
          <navbarleft-cmp></navbarleft-cmp>
      </yield>
      <yield to="containercontent">
          <div class="row">
              <containercontent-cmp></containercontent-cmp>
          </div>
      </yield>
    </main-wrapper>
  </div>
</user>

<partner>
  <div class="green">
    <h1>Partner</h1>
    <main-wrapper clazz="fix-header">
      <yield to="navbartop">
          <navbartop-cmp></navbartop-cmp>
      </yield>
      <yield to="navbarleft">
          <navbarleft-cmp></navbarleft-cmp>
      </yield>
      <yield to="containercontent">
          <div class="row">
              <containercontent-cmp></containercontent-cmp>
          </div>
      </yield>
    </main-wrapper>
  </div>
</partner>
Другие вопросы по тегам