Javascript 在Durandal viewmodel中,视图不是';调用viewAttached()时不总是附加
我在Durandal中有一个ViewModel,它有一个函数Javascript 在Durandal viewmodel中,视图不是';调用viewAttached()时不总是附加,javascript,mvvm,durandal,Javascript,Mvvm,Durandal,我在Durandal中有一个ViewModel,它有一个函数viewAttached() 根据这一点,应该在视图附加到DOM之后调用 在我的函数中,我为要附加的视图中的元素提供了一个jQuery选择器: function viewAttached() { console.log( $("#myViewId").length ); } 大多数情况下,我正确地将“1”打印到控制台上,但可能有10%的时间我得到0。该视图尚未实际附加到DOM 是否还有其他人有此问题?viewAttached获
viewAttached()
根据这一点,应该在视图附加到DOM之后调用
在我的函数中,我为要附加的视图中的元素提供了一个jQuery选择器:
function viewAttached() {
console.log( $("#myViewId").length );
}
大多数情况下,我正确地将“1”打印到控制台上,但可能有10%的时间我得到0。该视图尚未实际附加到DOM
是否还有其他人有此问题?
viewAttached
获取生成的DOM子树作为参数传入
因此,您可以将代码更改为大致相同的代码
function viewAttached(view) {
console.log( $(view).length );
}
如果要使用jQuery包装整个视图,或者
function viewAttached(view) {
console.log( $(view).find('mySubSelector').length );
}
如果您需要使用某些特定的子树元素。有几点需要注意:
是的,那正是我最后要做的。幸运的是我可以,因为代码是我自己的,但是还有一些其他jQuery库在内部使用
$(…)
来做事情,总是假设您的元素将位于主DOM上。它的前后矛盾真的把我搞砸了。如果它总是在DOM中打开或关闭,至少它是一致的:)那么当您尝试访问它时,您的父对象是否已经在DOM中?docu表示:“这允许控制器或演示者在注入其父级后的某个时间点直接访问它绑定到的dom子树。”