javascript – .datepicker调用里面的Durandal激活功能不工作

前端之家收集整理的这篇文章主要介绍了javascript – .datepicker调用里面的Durandal激活功能不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个视图中编写这个,然后尝试在结果上调用.datepicker(),但没有任何反应.

组合容器

<div>
<!--ko compose: { model:'viewmodels/schedule',view: 'views/schedule.html',activate:true} -->
<!--/ko-->
</div>

schedule.html

<div class="schedule-editor">

</div>

和计划模块

define([],function () {
    var vm = {
        activate: activate,};
    return vm;

    function activate() {
        $('.schedule-editor').datepicker();
        console.log("activated schedule module");
        return true;
    }
});

控制台日志“激活的计划模块”,但是没有创建datepicker.
如果我去chrome控制台并运行jQuery调用,
$( ‘时间表编辑器’)日期选择器().它带来了datepicker的罚款.

Durandal文档声称在DOM完整组合后调用了activate函数,所以我不知道还有什么要尝试的.

解决方法

像nemesv一样,你应该使用 viewAttached.
define([],function () {
    var vm = {
        viewAttached: viewAttached,};
    return vm;

    function viewAttached(view) {
        $(view).find('.schedule-editor').datepicker();
        console.log("activated schedule module");
        return true;
    }
});

激活发生在生命周期之前,您的模型已被数据绑定到新视图之前,并且视图已添加到dom. viewAttached发生在视图被数据绑定到你的模型并附加到dom之后.

编辑

Durandal 2.0已重命名为viewAttached附件

原文链接:https://www.f2er.com/js/155646.html

猜你在找的JavaScript相关文章