如何在angular2中导入和使用pubnub

时间:2016-12-27 15:03:40

标签: angular pubnub

我正在尝试在angular2项目中使用pubnub。 (实时获取浏览器订单

我使用了pubnub-angular2

我在angular.module中添加并导入了pubnub模块。 我想我是pubnub指南,但它根本不起作用,除了它导致“窗口”没有定义的错误。

以下是我导入pubnub所做的工作。

  1. npm install pubnub
  2. npm install pubnub-angular2
  3. 提供商:app.module中的[windows.PubNubAngular]
  4. 另外,这是我的package.json。

    {
      "name": "test",
      "version": "0.0.0",
      "license": "MIT",
      "angular-cli": {},
      "scripts": {
        "start": "ng serve",
        "lint": "tslint \"src/**/*.ts\"",
        "test": "ng test",
        "pree2e": "webdriver-manager update",
        "e2e": "protractor"
      },
      "private": true,
      "dependencies": {
        "@angular/common": "~2.0.0",
        "@angular/compiler": "~2.0.0",
        "@angular/core": "~2.0.0",
        "@angular/forms": "~2.0.0",
        "@angular/http": "~2.0.0",
        "@angular/material": "^2.0.0-beta.0",
        "@angular/platform-browser": "~2.0.0",
        "@angular/platform-browser-dynamic": "~2.0.0",
        "@angular/router": "~3.0.0",
        "@types/moment-timezone": "^0.2.33",
        "angular-cli": "^1.0.0-beta.17",
        "angular2-jwt": "^0.1.25",
        "bootstrap": "^3.3.7",
        "bourbon": "^4.2.7",
        "core-js": "^2.4.1",
        "es6-promise": "^4.0.5",
        "font-awesome": "^4.7.0",
        "hammerjs": "^2.0.8",
        "moment": "^2.17.1",
        "moment-timezone": "^0.5.10",
        "node-sass": "^3.13.0",
        "primeng": "^1.1.0",
        "pubnub-angular2": "^1.0.0-beta.6",
        "rxjs": "5.0.0-beta.12",
        "ts-helpers": "^1.1.1",
        "zone.js": "^0.6.23"
      },
      "devDependencies": {
        "@types/hammerjs": "^2.0.33",
        "@types/jasmine": "^2.2.30",
        "@types/moment": "^2.13.0",
        "@types/moment-timezone": "^0.2.33",
        "@types/node": "^6.0.42",
        "angular-cli": "1.0.0-beta.17",
        "bootstrap-sass": "^3.3.7",
        "codelyzer": "~0.0.26",
        "jasmine-core": "2.4.1",
        "jasmine-spec-reporter": "2.5.0",
        "karma": "1.2.0",
        "karma-chrome-launcher": "^2.0.0",
        "karma-cli": "^1.0.1",
        "karma-jasmine": "^1.0.2",
        "karma-remap-istanbul": "^0.2.1",
        "protractor": "4.0.9",
        "ts-node": "1.2.1",
        "tslint": "3.13.0",
        "typescript": "2.0.2"
      }
    }

    这是app.module

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule, ReactiveFormsModule } from '@angular/forms';
    import { HttpModule } from '@angular/http';
    
    import { AppComponent } from './app.component';
    import { HomeComponent } from './home/home.component';
    import { DeliveryComponent } from './delivery/delivery.component';
    import { AreaManagementComponent } from './area-management/area-management.component';
    import { CountryComponent } from './area-management/country/country.component';
    
    import { routing } from './app.routing';
    
    import { AreaService } from "./area-management/area-management.service";
    import { FDeliveryService } from "./f-delivery-setting/f-delivery.service";
    import { ProvinceComponent } from './area-management/province/province.component';
    import { SigninComponent } from './signin/signin.component';
    import { CityComponent } from './area-management/city/city.component';
    import { AreaComponent } from './area-management/area/area.component';
    import { DeliveryAreaComponent } from './area-management/delivery-area/delivery-area.component';
    import { FDeliverySettingComponent } from './f-delivery-setting/f-delivery-setting.component';
    import { TermsComponent } from './terms/terms.component';
    import { TermsListComponent } from './terms-list/terms-list.component';
    import { TermsListService } from "./terms-list/terms-list.service";
    import { TermsService } from "./terms/terms.service";
    import { UserManagementComponent } from './user-management/user-management.component';
    import { UserService} from "./user-management/user.service";
    import { NavComponent } from './nav/nav.component';
    
    import { MaterialModule } from '@angular/material';
    import 'hammerjs';
    
    import {
      DialogModule,
      ButtonModule,
      DataTableModule,
      InputTextModule,
      TabViewModule,
      DropdownModule,
      EditorModule,
      SharedModule,
      AutoCompleteModule,
      PanelMenuModule,
      MenuModule,
      ContextMenuModule,
      PasswordModule,
      FileUploadModule,
      InputTextareaModule,
      RadioButtonModule,
      CalendarModule,
      CheckboxModule,
      ConfirmDialogModule,
      ConfirmationService, InputMaskModule
    } from "primeng/primeng";
    import { SignupComponent } from './signin/signup.component';
    import { LicenseComponent } from './license/license.component';
    import { TermsShowComponent } from './terms-show/terms-show.component';
    import { AuthGuardService } from "./signin/auth-guard.service";
    import { AuthService } from "./signin/auth.service";
    import { UserDetailComponent } from './user-detail/user-detail.component';
    import { LicenseDetailComponent } from './license/license-detail/license-detail.component';
    import { UserDetailService } from "./user-detail/user-detail.service";
    import { LicenseService } from "./license/license.service";
    import { BranchManagementComponent } from './branch-management/branch-management.component';
    import { BranchService } from "./branch-management/branch.service";
    import { BranchDetailComponent } from './branch-management/branch-detail/branch-detail.component';
    import { InternalComponent } from './home/internal/internal.component';
    import { ExternalComponent } from './home/external/external.component';
    import { ClassificationComponent } from './classification/classification.component';
    import { ClientComponent } from './client/client.component';
    import { DmBillingComponent } from './payment-billing/dm-billing/dm-billing.component';
    import { PartnerBillingComponent } from './payment-billing/partner-billing/partner-billing.component';
    import { WowbillingComponent } from './payment-billing/wowbilling/wowbilling.component';
    import { DailyReportingComponent } from './daily-reporting/daily-reporting.component';
    import { AccountClosingComponent } from './account-closing/account-closing.component';
    import { AccountingComponent } from "./accounting-balance/accounting-balance.component";
    import { DeliveryService } from "./delivery/delivery.service";
    import { UserAddComponent } from './user-add/user-add.component';
    import { NavService } from "./nav/nav.service";
    import { PartnerService } from "./shared/partner.service";
    import { ClientService } from "./shared/client.service";
    import { PartnerComponent } from './partner/partner.component';
    import { PartnerDetailComponent } from './partner/partner-detail/partner-detail.component';
    import { NewBranchComponent } from './branch-management/new-branch/new-branch.component';
    import { ForgetPasswordComponent } from './signin/forget-password/forget-password.component';
    import { DeliveryDetailComponent } from './delivery/delivery-detail/delivery-detail.component';
    import {FileUploadService} from "./shared/file-upload.service";
    import { PartnerEditComponent } from './partner/partner-edit/partner-edit.component';
    
    @NgModule({
      declarations: [
        AppComponent,
        HomeComponent,
        DeliveryComponent,
        AreaManagementComponent,
        CountryComponent,
        ProvinceComponent,
        SigninComponent,
        CityComponent,
        AreaComponent,
        DeliveryAreaComponent,
        FDeliverySettingComponent,
        TermsComponent,
        TermsListComponent,
        UserManagementComponent,
        NavComponent,
        SignupComponent,
        LicenseComponent,
        TermsShowComponent,
        UserDetailComponent,
        LicenseDetailComponent,
        BranchManagementComponent,
        BranchDetailComponent,
        InternalComponent,
        ExternalComponent,
        AccountingComponent,
        ClassificationComponent,
        ClientComponent,
        DmBillingComponent,
        PartnerBillingComponent,
        WowbillingComponent,
        DailyReportingComponent,
        AccountClosingComponent,
        UserAddComponent,
        PartnerComponent,
        PartnerDetailComponent,
        NewBranchComponent,
        ForgetPasswordComponent,
        DeliveryDetailComponent,
        PartnerEditComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        routing,
        MaterialModule.forRoot(),
        ReactiveFormsModule,
    
        //primeNG
        InputTextareaModule,
        InputTextModule,
        DataTableModule,
        DialogModule,
        DropdownModule,
        ButtonModule,
        TabViewModule,
        EditorModule,
        SharedModule,
        PanelMenuModule,
        MenuModule,
        ContextMenuModule,
        PasswordModule,
        FileUploadModule,
        RadioButtonModule,
        CalendarModule,
        CheckboxModule,
        ConfirmDialogModule,
        InputMaskModule
      ],
      providers: [
        AreaService,
        FDeliveryService,
        TermsListService,
        TermsService,
        UserService,
        AuthGuardService,
        AuthService,
        UserDetailService,
        LicenseService,
        BranchService,
        DeliveryService,
        NavService,
        PartnerService,
        ClientService,
        ConfirmationService,
        FileUploadService,
        
        window.PubNubAngular
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

    它会出错。我有一个问题,导入pubnub,所以我没有任何关于此的代码。我要导入的内容仅将windows.PubNubAngular添加到a​​pp.module中的providers

    Uncaught Error: Invalid provider for the NgModule 'AppModule' - only instances of Provider and Type are allowed
    

    enter image description here

    如果您知道如何在angular2中导入和使用pubnub,请提供一些建议。

    提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用的版本与打字稿不兼容,因为newone已经兼容,你必须再次下载并按照上一个文档。