我最近从KnockoutJS 1.2.1更新了现有的KnockoutJS 2.0项目(尽管我是使用之前的版本开始的).自更新以来,我注意到afterRender似乎在元素实际完全在html中之前被触发.
我做了一些环顾四周,根据围绕这个领域的一些其他问题,这似乎是预期的行为:
Why are template divs showing as “:hidden” in afterRender?
问题通过Jquery Validate表现出来,我将一些规则应用于元素,它告诉我元素不存在.奇怪的是,这曾经在1.2.1中运行良好.我不确定这是否是因为在以前的版本中对afterRender的处理方式不同,或者对一般本机模板系统的更改导致它的行为有所不同……
如果有变化或者这是预期的行为,有什么方法可以知道模板元素何时实际进入了html应该在哪里?我知道加载的元素是通过afterRender回调参数传回来的,但在这个阶段使用这些元素进行Dom操作是否安全?
编辑
我已经把我的具体问题放在一个例子中:
Example project showing issue
如果您查看每个模板的afterRender逻辑,它只是进行一些简单的验证,但是每当您尝试使用这些元素时,它就会爆炸,但是如果您取出验证逻辑它可以正常工作.
如果我做错了什么并尝试解决它,我很乐意伸出双手但我老实说不知道问题是什么,因为一切都是隔离的……
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。