Вопрос

Я искал некоторое время, и я уверен, что это новый вопрос, а не повторение, как следует из названия. :)

По сути, я пытаюсь выяснить, существует ли можно, что событие, которое создает Nockoutjs, создает после шаблона при использовании чего-то вроде шаблонов jQuery.

Я бы использовал встроенный «Afterrender», но я обнаружил, что он не стреляет, если наблюдаемый массив очищен. Я построил эту демонстрацию, чтобы проиллюстрировать эту проблему: http://jsfiddle.net/farina/ywfv8/1/.

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

Я просто хочу одно событие, которое стреляет после того, как шаблон завершил рендеринг.

Это было полезно?

Решение

Мой коллега на самом деле решил прошлой ночью, используя то, с чем мы играли до того, как я пошел домой.

Таким образом, вся «проблема» с событиями «Afterrender», «AfterAdd» и «BeforeRemove» заключается в том, что они действуют по -разному в сочетании с обязательностью «Foreach». Nockoutjs достаточно хорош, чтобы рассказать вам об этом на их страница, но по какой -то причине это на самом деле не погрузилось для меня, пока я не увидел это на практике.

Что действительно работает, так это то, чтобы отказаться от всего «foreach» привязки и использовать нативные «данные» нокаута «привязаны», как это:

data-bind="template: { name: 'item-template', data: items, afterRender: caller }"

Затем «Последний» работает точно так же, как следует из названия.

У меня сложилось впечатление, что вы не смогли повторить коллекцию и представить новый пользовательский интерфейс без Foreach, но эти примеры иллюстрируют, что она работает.

Я сделал пример для обоих стилей ViewModel, потому что иногда мне нужен один или другой.

Спасибо за помощь, Дэн !!

Другие советы

Является beforeRemove Что вы ищете? Я не уверен, какого поведения вы хотите достичь. Пожалуйста, проверьте этот пример: http://jsfiddle.net/romanych/ywfv8/8/Это то, что вы хотите или нет?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top