node.js - 未捕获( promise ): Error: No provider for GooglePlus

标签 node.js angular typescript ionic-framework ionic2

我正在尝试使用 cordova-plugin-googleplus 插件。

我已经阅读了其他帖子说要将插件添加为提供者,并且尝试这样做无济于事。

当我尝试访问我的登录页面时,我收到堆栈跟踪错误:

Runtime Error Uncaught (in promise): Error: No provider for GooglePlus! Error: No provider for GooglePlus! at injectionError (http://localhost:8100/build/vendor.js:1590:86) at noProviderError (http://localhost:8100/build/vendor.js:1628:12) at ReflectiveInjector_.throwOrNull (http://localhost:8100/build/vendor.js:3129:19) at ReflectiveInjector.getByKeyDefault (http://localhost:8100/build/vendor.js:3168:25) at ReflectiveInjector.getByKey (http://localhost:8100/build/vendor.js:3100:25) at ReflectiveInjector.get (http://localhost:8100/build/vendor.js:2969:21) at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:332:145) at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:615:44) at AppModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:3936:44) at LoginPageModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:3937:52)

堆栈跟踪

Error: Uncaught (in promise): Error: No provider for GooglePlus!
Error: No provider for GooglePlus!
    at injectionError (http://localhost:8100/build/vendor.js:1590:86)
    at noProviderError (http://localhost:8100/build/vendor.js:1628:12)
    at ReflectiveInjector_._throwOrNull (http://localhost:8100/build/vendor.js:3129:19)
    at ReflectiveInjector_._getByKeyDefault (http://localhost:8100/build/vendor.js:3168:25)
    at ReflectiveInjector_._getByKey (http://localhost:8100/build/vendor.js:3100:25)
    at ReflectiveInjector_.get (http://localhost:8100/build/vendor.js:2969:21)
    at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:332:145)
    at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:615:44)
    at AppModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:3936:44)
    at LoginPageModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:3937:52)
    at c (http://localhost:8100/build/polyfills.js:3:13535)
    at Object.reject (http://localhost:8100/build/polyfills.js:3:12891)
    at NavControllerBase._fireError (http://localhost:8100/build/vendor.js:45902:16)
    at NavControllerBase._failed (http://localhost:8100/build/vendor.js:45890:14)
    at http://localhost:8100/build/vendor.js:45945:59
    at t.invoke (http://localhost:8100/build/polyfills.js:3:9283)
    at Object.onInvoke (http://localhost:8100/build/vendor.js:4508:37)
    at t.invoke (http://localhost:8100/build/polyfills.js:3:9223)
    at r.run (http://localhost:8100/build/polyfills.js:3:4452)
    at http://localhost:8100/build/polyfills.js:3:14076

平台详情

  • ionic 框架:3.6.1
  • Ionic 应用程序脚本:2.1.4
  • Angular 核心:4.1.3
  • Angular 编译器 CLI:4.1.3
  • Node :6.11.2
  • 操作系统平台:Windows 10
  • 导航器平台:Win32 用户代理:Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 像 Gecko) Chrome/60.0.3112.113 Safari/537.36

登录.ts

import { Component } from '@angular/core';
//import { GooglePlus } from '@ionic-native/google-plus';
import { TranslateService } from '@ngx-translate/core';
import { IonicPage, NavController, ToastController } from 'ionic-angular';

import { User } from '../../providers/providers';
import { MainPage } from '../pages';

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html'
})
export class LoginPage {
  // The account fields for the login form.
  // If you're using the username field with or without email, make
  // sure to add it to the type
  account: { username: string, password: string } = {
    username: '',
    password: ''
  };

  // Our translated text strings
  private loginErrorString: string;

  constructor(public navCtrl: NavController,
    public user: User,
    public toastCtrl: ToastController,
    public translateService: TranslateService,
//    private GooglePlus: GooglePlus
  ) {

    this.translateService.get('LOGIN_ERROR').subscribe((value) => {
      this.loginErrorString = value;
    })
  }

  // Attempt to login in through our User service
  doLogin() {
    this.user.login_basic(this.account).subscribe((resp) => {
      this.navCtrl.push(MainPage);
    }, (err) => {
      this.navCtrl.push(MainPage);
      // Unable to log in
      let toast = this.toastCtrl.create({
        message: this.loginErrorString,
        duration: 3000,
        position: 'top'
      });
      toast.present();
    });
  }

}

login.module.ts

import { NgModule } from '@angular/core';
import { GooglePlus } from '@ionic-native/google-plus';
import { TranslateModule } from '@ngx-translate/core';
import { IonicPageModule } from 'ionic-angular';

import { LoginPage } from './login';

@NgModule({
  declarations: [
    LoginPage,
  ],
  imports: [
    IonicPageModule.forChild(LoginPage),
    TranslateModule.forChild()
  ],
  exports: [
    LoginPage
  ],
  providers: [
    GooglePlus,
  ],
})
export class LoginPageModule { }

最佳答案

您需要将 GooglePlus-provider 添加到 AppModule (app.module.ts)

关于node.js - 未捕获( promise ): Error: No provider for GooglePlus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279765/

相关文章:

javascript - 以编程方式确定要放置在图像上的最佳前景色

node.js - 如何在 node.js 中从 .csv 转换为 array/json/string

node.js - 如何修复找不到模块 'fs'

angular - NG-bootstrap 和 Angular 9 兼容性

Angular 5 - 未定义谷歌(谷歌地图)

javascript - node.js readFile txt 在内容顶部添加问号

node.js - Socket.io 检测客户端何时断开连接

javascript - 使用 typescript 在 angular2 中进行加法运算

javascript - typescript 顺序数组基于另一个数组的值

javascript - 输入 radio 中的 ngModel?