首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular2 - FF和IE中的引导v3日期选择器问题

Angular2 - FF和IE中的引导v3日期选择器问题
EN

Stack Overflow用户
提问于 2015-06-19 17:17:06
回答 2查看 1.7K关注 0票数 3

我对客户端的web开发相当陌生,目前正在学习如何使用类型记录、Angular2(0.27)和引导程序。我知道Angular2还在开发中,但我遇到了一个问题,我不知道到底是什么(技术)导致了它。这个问题与引导v3日期选择器有关。有关这个小部件的更多信息可以在这里找到:https://eonasdan.github.io/bootstrap-datetimepicker/

问题是,在火狐(最新版)和IE11浏览器中,如果日期选择器代码( html &js)位于angular2应用程序html中,则不会出现日期选择器的弹出,而在google中,它工作得很好。对于FF和IE11,当我将代码直接放入index.html主体时,它确实工作得很好。

这是我使用的小部件html:

代码语言:javascript
运行
复制
<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker1'>
                    <input placeholder="RAW" type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
        <script type="text/javascript">
        $(function () {
            $('#datetimepicker1').datetimepicker();
        });
        </script>
    </div>
</div>

index.html中的身体如下所示:

代码语言:javascript
运行
复制
<body>
<my-app></my-app>
<script type="text/javascript">
    System.config({
        baseURL: '/'
    });
    System.import('~/app');
</script>
</body>

使用my引用angular2应用程序,该应用程序生成包含日期选择器小部件的html。

对于是什么原因造成的,或者我怎样才能回避这个问题,有什么暗示吗?我尝试将'.datetimepicker()‘js调用放入在窗口或文档加载时执行的代码中,但这并没有产生任何区别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-20 14:28:52

显然,这里的问题是,在FF和IE中,如果html脚本块中的JS出现在Angular2应用程序html模板中,则不会执行这些JS。我不确定这是否是Angular2能够解决的问题,还是仅仅是因为chrome/opera解析/处理它的方式与IE和FF不同。

无论是哪种方式,我现在都可以通过在我的类型记录Angular2应用程序的构造函数中执行datetimepicker选择器代码来工作。您需要引用日期选择器(bootstrap.v3.datetimepicker.d.ts)和jQuery的类型记录定义文件,然后使应用程序类构造函数看起来如下所示:

代码语言:javascript
运行
复制
constructor() {
    $(function () {
        $('#datetimepicker1').datetimepicker({
            format: 'DD/MM/YYYY HH:mm'
        });
        console.log('executed datetimepicker from angular2 app constructor');
    });
}

在应用程序的构造函数时,相应的datetimepicker1 DOM元素是可用的,无论您使用什么(最近的)浏览器,JS都将被成功地执行。

票数 1
EN

Stack Overflow用户

发布于 2017-02-01 14:17:31

一个更“轻量级”的解决方案是将初始化放到ngAfterViewInit中。因此,将找到jQuery选择器,在呈现DOM之后进行

export class YourComponent implements AfterViewInit { ...

代码语言:javascript
运行
复制
ngAfterViewInit(): void {
    $('#datetimepicker1').datetimepicker({
            format: 'DD/MM/YYYY HH:mm'
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30943772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档