RactiveJS не обновляет все переменные при установке или обновлении

У меня есть это:

{{#config.buildings:building}}
    <div class="building" id="building-item-{{building}}">
        <div class="image-container">
            <div class="thumbnail" style="background: transparent url({{staticUrl}}/game_images/town/buildings/{{building}}/{{building}}-1-thumbnail.png) no-repeat center center;"></div>
            <div class="cover"></div>
            <div class="undercover"></div>

            <div class="level">{{village.buildings[building].level + alreadyInQueue(building)}}</div>
        </div>
        <div class="big_title">{{lang('buildings',building)}}</div>
        <p class="{{buildingMaxed(building) ? 'maxed' : ''}}">{{lang('buildings',building+'_description')}}</p>
        <div on-tap="upgradeBuilding:{{building}}" class="upgrade-button" tooltip="{{lang('general','upgrade_building')}}"></div>
        <div on-tap="downgradeBuilding:{{building}}" class="downgrade-button disabled" tooltip="{{lang('general','downgrade_building')}}"></div>
            <div class="resources">
                <div class="resource">
                    <img class="thumbnail" src="{{staticUrl}}/game_images/resources/woodB.png">
                    <label class="res-count-wood">{{config.buildings[building][village.buildings[building].level].wood}}</label>
                </div>
                <div class="resource">
                    <img class="thumbnail" src="{{staticUrl}}/game_images/resources/ironB.png">
                    <label class="res-count-iron">{{config.buildings[building][village.buildings[building].level].clay}}</label>
                </div>
                <div class="resource">
                    <img class="thumbnail" src="{{staticUrl}}/game_images/resources/clayB.png">
                    <label class="res-count-stone">{{config.buildings[building][village.buildings[building].level].iron}}</label>
                </div>
                <div class="resource">
                    <img class="thumbnail" src="{{staticUrl}}/game_images/resources/workersB.png">
                    <label class="res-count-builders">{{config.buildings[building][village.buildings[building].level].people}}</label>
                </div>
                <div class="resource">
                    <img class="thumbnail" src="{{staticUrl}}/game_images/resources/timeB.png">
                    <label class="res-count-time">{{secsToString(config.buildings[building][village.buildings[building].level].time)}}</label>
                </div>
            </div>
        <div class="hr"></div>
    </div>
{{/config.buildings:building}}

Когда я использую

contentTPL.set('village.buildings[1].level',4)

Единственные вещи, которые обновляются

<div class="level">{{village.buildings[building].level + alreadyInQueue(building)}}</div>
// and
<label class="res-count-time">{{secsToString(config.buildings[building][village.buildings[building].level].time)}}</label>

Кажется, я не понимаю, почему другие значения не обновляются при обновлении (), как должны. В коде нет ошибок, и я использую граничную версию (тот же результат с последней версией от 8 апреля, 0.4.0).

ОБНОВЛЕНИЕ Я удалил все ненужные данные и добавил console.log в функцию уже в очереди. Он вызывается при инициализации, но когда я вызываю contentTPL.update(), он больше не вызывается. Ничего не обновляется в файле при нажатии кнопки startQueue. Существует еще один contentTPL.update(), когда срок действия очереди истекает, который обновляет только уровень и необходимое время, как указано выше. Я прошу Рича или Марти дать совет по этой проблеме, так как я застрял здесь около 4 часов и, похоже, не могу понять, является ли это моим неправильным использованием библиотеки или это ошибка.


person Eduard    schedule 27.05.2014    source источник
comment
Насколько я могу судить, он обновляет только усы, которые оборачивают в него функции. Но, честно говоря, я понятия не имею, почему. Обновил пост, добавил новую информацию. Вместо этого я попробую добавить наблюдателя, используя update. Скоро обновится.   -  person Eduard    schedule 27.05.2014
comment
@edduvs Не похоже, что вы делаете что-то не так, так что это вполне может быть ошибка. В любом случае вы можете уменьшить его до SSCCE в JSFiddle или подобном? Вот шаблон JSFiddle: jsfiddle.net/rich_harris/va6jU   -  person Rich Harris    schedule 27.05.2014
comment
@RichHarris Я не могу сделать этот файл jsFiddle, потому что необходимых переменных довольно много. Могу ли я связаться с вами по скайпу или gtalk или как-то так, чтобы я мог предоставить вам доступ к файлам? Или какой-нибудь тимвьювер?   -  person Eduard    schedule 27.05.2014
comment
@edduvs, к сожалению, я на работе, так что это невозможно ... в любом случае, вероятно, придется покопаться в этом. Пробовали ли вы удалять фрагменты шаблона до тех пор, пока не останутся только проблемные части?   -  person Rich Harris    schedule 27.05.2014
comment
@RichHarris в последний час я пытался заставить этот SSCCE работать, и мне это вроде как удалось. Это все еще довольно беспорядочно, но вот оно, jsfiddle.net/va6jU/34, оно использует contetTPL.update() который не работает, но если я использую detach и reinit dialogController.load('1',true) , он работает. Посмотреть на себя. contentTPL.update() будет обновлять уровень только настолько, насколько вы видите, как указано в исходном сообщении.   -  person Eduard    schedule 27.05.2014
comment
@RichHarris, и да, эта скрипка - минимальный фрагмент кода. Я твердо верю, что это не мой код неверен. Если вам нужен шаблон в чистом HTML, вот он: pastebin.com/nxMKzCWQ   -  person Eduard    schedule 27.05.2014


Ответы (1)


Оказывается, это была ошибка, которая теперь исправлено в dev.

person Rich Harris    schedule 29.05.2014
comment
Проблема почему-то все еще присутствует, еще одна часть SSCCE для вас. jsfiddle.net/va6jU/38 извините за беспокойство. - person Eduard; 30.05.2014