Я недавно обновил существующий проект до KnockoutJS 2.0 из KnockoutJS 1.2.1 (хотя я запустил его, используя предыдущую версию).После обновления я заметил, что afterRender запускается до того, как элементы фактически полностью попадают в html.
Я немного осмотрелся, и мне кажется, что это целевое поведение в соответствии с несколькими другими вопросами, связанными с этим.area:
Почему в afterRender элементы div шаблона отображаются как ": hidden"?
Проблема проявляется в Jquery Validate, где я применяю некоторые правила к элементам и сообщаетМне, что элементы не существуют.Странно то, что раньше это нормально работало в 1.2.1.Я не уверен, что это потому, что afterRender обрабатывался по-другому в предыдущих версиях или изменения в общей системе шаблонов приводят к тому, что он ведет себя по-другому ...
Если произошли изменения или это предполагаемое поведениеЕсть ли способ узнать, когда элементы шаблона фактически вошли в HTML, где они должны быть?Я знаю, что загруженные элементы передаются обратно через аргументы обратных вызовов afterRender, но безопасно ли их использовать для чего-либо контекстуального с манипуляциями Dom на этом этапе?
Edit
Я собрал примерМоя конкретная проблема: Пример проекта, показывающего проблему
Если вы посмотрите на логику afterRender для каждого шаблона, он просто выполняет некоторую простую проверку, но всякий раз, когда вы пытаетесь использовать элементы, он просто взрывается.Однако, если вы возьмете логику проверки, она будет работать нормально.
Я более чем рад поднять руки, если я сделал что-то не так и попытаться это исправить, но я, честно говоря, не знаю, в чем проблемаесть, так как все работает изолированно ...