Тема: Snakeskin
Показать сообщение отдельно
  #481 (permalink)  
Старый 12.02.2015, 07:52
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Фух, всё правильно работает

В test_html.ss.js нет, т.к. там ты объявил прототип, но нигде не вызывал и сборщик мусора SS декларацию выпилил, т.к. она не нужна оказалась.

А в test.ss.js нет, т.к. ты переопределил родительский для proto des блок и тем самым удалил его декларацию и сборщик мусора SS обнаружил, что на данный прототип нет больше ссылок и удалил его, т.е. это абсолютно правильное поведение, решать это можно двумя способами:

1) Вызов super в родительском блоке

{template main(param) extends html}
    {block body}
        {super}
        <div class="wrap">
                {apply des()}
        </div>
    {/}
{/template}


2) Явное указание использования прототипа

{template main(param) extends html}
    {proto des(des)}
        {super}
    {/}

    {block body}
        <div class="wrap">
                {apply des()}
        </div>
    {/}
{/template}


При таком подходе прототип будет вынесен из body, а body будет перезаписан.

PS: если не сложно, добавь мне в issue заданице описать это поведение в доке, а то у мя ща нет возможности, а если не добавить, то я забуду

UPD:
повесил тикет по улучшению доки
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 12.02.2015 в 11:25.
Ответить с цитированием