子视图合成生命周期。在父组合完成后在子视图中运行代码

时间:2013-09-28 19:25:10

标签: durandal composition

我正在使用堆叠的Bootstrap药片在视图子集上实现左侧导航。我正在使用简单的compose绑定将左侧导航视图添加到视图中:

<div data-bind="compose: { view: 'left-nav' }"></div>

在左侧导航中,我想以编程方式将active类添加到其中一个药丸中,以指示哪个视图处于活动状态;类似的东西:

switch (router.activeInstruction().fragment) {
    case "foo":
        $("#pills #foo").addClass("active");
        break;
};

当此代码在activate处理程序中运行时,父视图合成尚未完成。

使用compositionComplete确保父代和子代完全合并后运行此代码的正确方法是什么?

谢谢!

更新 解决了......几分钟的差异 - 你只需要实现处理程序。

var compositionComplete = function () {
    switch (router.activeInstruction().fragment) {
        case "foo":
            $("#pills #foo").addClass("active");
            break;
    };
};

var vm = {
    activate: activate,
    compositionComplete: compositionComplete,
};

0 个答案:

没有答案