访问index.html

时间:2018-03-01 15:36:20

标签: javascript angular

在index.html中我添加脚本并创建对象

       <script>
            let dkrm = new Darkroom('#ocrImg', {
                // Size options
                minWidth: 800,
                minHeight: 800,
                maxWidth: 1000,
                maxHeight: 900,
                ratio: 4/3,
                backgroundColor: '#fff',
            });
        </script>

但现在我尝试在Angular ts文件中的某个组件中使用此Darkroom

我试试

var declare Darkroom: any;

并在

    ngOnInit() { this.darkroom = window["dkrm"];}

但是这个房间未定义

如何访问index.html中定义的变量并在.ts文件中使用此var?

3 个答案:

答案 0 :(得分:0)

将脚本更改为直接设置window字段

<script>
    window.dkrm = new Darkroom('#ocrImg', {
        // Size options
        minWidth: 800,
        minHeight: 800,
        maxWidth: 1000,
        maxHeight: 900,
        ratio: 4/3,
        backgroundColor: '#fff',
    });
</script>

答案 1 :(得分:0)

您无法访问在脚本标记中使用let定义的变量。

如果要定义全局变量,则必须将其放在窗口对象中:

<script>
        window.dkrm = new Darkroom('#ocrImg', {
            // Size options
            minWidth: 800,
            minHeight: 800,
            maxWidth: 1000,
            maxHeight: 900,
            ratio: 4/3,
            backgroundColor: '#fff',
        });
    </script>

答案 2 :(得分:0)

将您的数据分配给窗口对象(例如window.darkroom)并在下面的组件中访问它。

的index.html

<script>
    window.darkroom = {};
</script>

component.ts

darkroom: Object = {};
ngOnInit() {
    this.darkroom = window.darkroom;
}