Navigation Durandal-我可以有一个总是在绑定完成后被调用的函数吗?
我正在做一个水疗中心,它是用和Bootstrap构建的。我们最近开始尝试添加以处理较小的屏幕。Tapdrop会自动将不适合第一行的任何项目推入下拉列表 我通过添加Navigation Durandal-我可以有一个总是在绑定完成后被调用的函数吗?,navigation,single-page-application,durandal,Navigation,Single Page Application,Durandal,我正在做一个水疗中心,它是用和Bootstrap构建的。我们最近开始尝试添加以处理较小的屏幕。Tapdrop会自动将不适合第一行的任何项目推入下拉列表 我通过添加$('.nav tabs').tabdrop()使我们的应用程序正常工作到任何具有选项卡的viewmodel中的附加函数。这很管用,但很笨重。(只有attached()起作用,activate()太早,那么tabdrop就不起作用了。) 所以,这让我想知道:有没有一种方法可以插入这个函数,让它总是在attached()之前或之后被直接调
$('.nav tabs').tabdrop()使我们的应用程序正常工作代码>到任何具有选项卡的viewmodel中的附加函数。这很管用,但很笨重。(只有attached()起作用,activate()太早,那么tabdrop就不起作用了。)
所以,这让我想知道:有没有一种方法可以插入这个函数,让它总是在attached()之前或之后被直接调用?在attached
之后是compositionComplete
。您可以将DOM访问器移动到那里
但是$('.nav tabs').tabdrop()
不是基于Durandal的方法。假设compositionComplete
处理程序工作正常,它将如下所示:
compositionComplete = function (view, parent) {
$(view).find('.nav-tabs').tabdrop();
}
这种方法将DOM上的搜索限制在参与合成的视图上。您可以使用附加的
处理程序以相同的方式进行约束,因为视图也在那里公开
一种更优雅的方法是编写一个定制的敲除绑定
激活太早的原因是DOM在那时没有完全构建。是的。在activator生命周期中,可以触发许多回调: 激活() Composition&Activator允许新对象执行自定义激活逻辑 绑定() 组合在数据绑定发生之前立即通知新对象 bindingComplete() 组合在数据绑定发生后立即通知新对象 已附加() 当新对象的视图附加到其父DOM节点时,Composition会通知该对象 合成完成() 合成在它参与的合成完成时通知新对象 有关更多信息,请参见此处的文档: