我需要在切换到视图后执行操作。
第一次切换到视图时,激活'然后' compositionComplete'被称为。
之后只有'激活'被称为。
似乎'激活'在视图完成显示之前调用,这导致了我使用的JavaScript控件(Bing Maps V7)的问题。
我一直在使用Hooking Lifecycle Callbacks作为参考,但似乎没有合适的回调来加入。
是否有其他事件或方法我可以用来判断DOM何时更改为视图?
答案 0 :(得分:1)
听起来好像你的模块是单例而不是实例。真的吗?如果您创建基于实例的模块,则每次激活模块时都会重新创建该模块。这将导致compositionComplete
重新执行。
activate
处理程序适用于准备最终将在视图中显示的数据。 compositionComplete
最适合处理依赖于完全构建的DOM的事项。
我们也使用Bing Maps AJAX v7,并且我总是把它放在基于实例的模块中。
要创建基于实例的模块,如果您不熟悉,请确保您的viewmodel返回构造函数而不是对象文字。
答案 1 :(得分:0)
您是否尝试将Bing初始化置于附加?或者为它创建自定义绑定?我使用的任何第三方库将始终在附加中初始化,如果它想要使用多次,我或者为它创建自定义绑定或创建一个小部件。