【问题标题】:angular js code not working with external plugin角度js代码不适用于外部插件
【发布时间】:2018-01-15 21:51:08
【问题描述】:
  • 我正在尝试在我的应用中使用对讲机来监控用户活动。
  • 当我将脚本标签放入 index.html 时,它工作正常
  • 但是当我尝试在 .ts 文件中使用时,我遇到了以下错误。 app/components/rocket/rocket-search.ts(63,10):错误 TS2339:“窗口”类型上不存在属性“对讲设置”。
  • 你能告诉我如何解决它吗?
  • 在下面提供我的代码

代码无效

import { Component, ElementRef, Input, Output, EventEmitter, Inject, OnInit, ViewChild } from '@angular/core';
import { KendoGridComponent } from '../grid/grid.component'
import { Router } from '@angular/router';
import { sportsService } from '../../services/sports.service';


@Component({
    selector: 'rocketSearch',
    templateUrl: "./app/components/rocket/rocket-search.html",
})

export class rocketSearch {
    /* Localization variables */

    @Output() rocketSearchEmitter: EventEmitter<any> = new EventEmitter<any>();

    private dataSourceVal;
    private MainGrid;
    private grid;
    private titles;
    public rocketRef;

    constructor( public elementRef: ElementRef, public router: Router, public sportsService: sportsService) {
    }
    private kendocommand = {
        edit: { createAt: "bottom" },
        autoBind: false,
        excelFileName: {
            fileName: "",
            allPages: true
        }
    }

    ngOnInit() {

        let that = this;
        let attributes = this.sportsService.getSeesionStorageValue();
        // if (attributes) {
        //  this.userId = attributes.user_attributes.SSO[0];
        // }

        //app/components/rocket/rocket-search.ts(63,10): error TS2339: Property 'intercomSettings' does not exist on type 'Window'.


        window.intercomSettings = {
            app_id: 'irgooiqb',
            name: "Jane Doe", // Full name
            email: "customer@example.com", // Email address
            created_at: 1312182000 // Signup date as a Unix timestamp
        };
        //console.log(.log(this.userId);
    }

}

index.html 中的工作代码

<script>
    (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/APP_ID';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()
</script>

<script>
    let players=this.sportsService.marksSession();
    console.log("players--->" + players);
    if(players) {
        this.userId = players.user_players.SSO[0];
    }

    Intercom('trackEvent', 'share-link');

    window.intercomSettings = {
        app_id: 'APP_ID',
        name: "Jane Doe", // Full name
        email: "customer@example.com", // Email address
        created_at: 1312182000 // Signup date as a Unix timestamp
    };
</script>

【问题讨论】:

    标签: javascript jquery css angular intercom


    【解决方案1】:

    这行不通,你的 html 中的代码实际上是从 URL https://widget.intercom.io/widget/APP_ID 获取对讲 js 库,而你的 typescript 中的代码没有。 更好的方法是安装intercom npm package,然后您可以将其导入代码中,但是我不编写打字稿,所以我不确定以打字稿方式使用该包是否会出现任何问题。

    【讨论】:

    • 太混乱了...你能在我的 ts 代码中更新...这将非常有帮助
    猜你喜欢
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    相关资源
    最近更新 更多