Как обновить переменные, которые находятся внутри вспомогательного тела в шаблоне Ember - PullRequest
0 голосов
/ 01 октября 2018

Представьте свойство myNumber в контроллере, в котором каждую секунду появляется другое случайное число.С этим шаблоном вы будете видеть это изменение каждую секунду:

<h4>Random number</h4>
<p>{{myNumber}}</p>

Однако, когда на номер ссылаются только внутри помощника (например, #if или #each), номер не обновляетсябольше. Это покажет только начальное значение:

<h4>Random number</h4>
{{#if model}}
    <p>{{myNumber}}</p>
{{/if}}

(Обратите внимание, что myNumber не имеет отношения к model. Просто используется какое-то случайное свойство truey.)

Интересно, что когда вы добавляете ссылку на свойство обратно в корень документа, ранее статические числа теперь также обновляются:

<h4>Random number</h4>
{{myNumber}} -- Without this reference, references below won't update.
{{#if model}}
    <p>{{myNumber}}</p>
{{/if}}

Как я могу иметь myNumber внутриобновление помощников, не показывая номер в корне моего шаблона?

Я пытался добавить ссылку в html-комментариях, но это не работает.Я предполагаю, что Ember не рисует элементы, которых нет в DOM:

<h4>Random number</h4>
<!-- {{myNumber}} -->
{{#if model}}
    <p>{{myNumber}}</p>
{{/if}}

Что работает, так это добавление значения в DOM, но его скрытие.Однако это уродливое решение:

<h4>Random number</h4>
<span style="display:none">
    {{myNumber}}
</span>
{{#if model}}
    <p>{{myNumber}}</p>
{{/if}}

1 Ответ

0 голосов
/ 02 октября 2018

Использование функции стрелки решит вашу проблему.

alt

...