Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 错误:未捕获(承诺中):NullInjectorError:R3InjectorError(RegisterManagementModule)[AccessProviders->;AccessProviders]_Ionic Framework_Ionic5 - Fatal编程技术网

Ionic framework 错误:未捕获(承诺中):NullInjectorError:R3InjectorError(RegisterManagementModule)[AccessProviders->;AccessProviders]

Ionic framework 错误:未捕获(承诺中):NullInjectorError:R3InjectorError(RegisterManagementModule)[AccessProviders->;AccessProviders],ionic-framework,ionic5,Ionic Framework,Ionic5,我在register.page.ts中使用AngularJS的Ionic应用程序中遇到问题;当我要在项目中添加AccessProviders路径时,项目会显示:错误:Uncaught(承诺中):NullInjectorError:R3InjectorError(registermanagemodule)[AccessProviders->AccessProviders->AccessProviders->AccessProviders->AccessProviders]:NullInjector

我在
register.page.ts
中使用AngularJSIonic应用程序中遇到问题;当我要在项目中添加
AccessProviders
路径时,项目会显示:
错误:Uncaught(承诺中):NullInjectorError:R3InjectorError(registermanagemodule)[AccessProviders->AccessProviders->AccessProviders->AccessProviders->AccessProviders]:NullInjectorError:AccessProviders没有提供程序

我已手动创建access providers文件夹和文件。

注册.page.ts

import {Router} from "@angular/router";
import { ToastController, LoadingController, AlertController } from "@ionic/angular";
import {AccessProviders} from "../../providers/access-providers";

@Component({
  selector: 'app-register',
  templateUrl: './register.page.html',
  styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {

    name: string = "";
    gender: string = "";
    dob: string = "";
    email: string = "";
    password: string = "";
    confirm_password: string = "";
    disabledButton;

  constructor(
      private router: Router,
      private toastCtrl: ToastController,
      private alertCtrl: AlertController,
      private loadingCtrl: LoadingController,
      private accsPrvds: AccessProviders,
  ) { }

  ionViewDidEnter() {
      this.disabledButton = false;
  }
import { HttpClient, HttpHeaders, HttpErrorResponse } from "@angular/common/http";
import  'rxjs/add/operator/map';
import  'rxjs/add/operator/timeout';

@Injectable()
export class AccessProviders {
    server: string = 'http://localhost:8100/register'; //should change.

    constructor(
        public http: HttpClient
    ) {

    }

    postData(body, file) {
        let headers = new HttpHeaders({
            'Content-Type': 'application/json; charset=UTF-8'
        });

        let options = {
            headers: headers
        };

        return this.http.post(this.server + file, JSON.stringify(body), options)
            .timeout(59000)// 59 sec timeout
            .map(res => res);
    }
}
访问提供商。ts

import {Router} from "@angular/router";
import { ToastController, LoadingController, AlertController } from "@ionic/angular";
import {AccessProviders} from "../../providers/access-providers";

@Component({
  selector: 'app-register',
  templateUrl: './register.page.html',
  styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {

    name: string = "";
    gender: string = "";
    dob: string = "";
    email: string = "";
    password: string = "";
    confirm_password: string = "";
    disabledButton;

  constructor(
      private router: Router,
      private toastCtrl: ToastController,
      private alertCtrl: AlertController,
      private loadingCtrl: LoadingController,
      private accsPrvds: AccessProviders,
  ) { }

  ionViewDidEnter() {
      this.disabledButton = false;
  }
import { HttpClient, HttpHeaders, HttpErrorResponse } from "@angular/common/http";
import  'rxjs/add/operator/map';
import  'rxjs/add/operator/timeout';

@Injectable()
export class AccessProviders {
    server: string = 'http://localhost:8100/register'; //should change.

    constructor(
        public http: HttpClient
    ) {

    }

    postData(body, file) {
        let headers = new HttpHeaders({
            'Content-Type': 'application/json; charset=UTF-8'
        });

        let options = {
            headers: headers
        };

        return this.http.post(this.server + file, JSON.stringify(body), options)
            .timeout(59000)// 59 sec timeout
            .map(res => res);
    }
}

我如何解决这个问题?我希望得到我的答案。

在您的
访问提供程序.ts
文件中添加blow代码:

import { Injectable } from '@angular/core'; // at top

@Injectable({
  providedIn: 'root' // just before your class
})
export class AccessProviders {}

看起来您需要将其添加到app.modules.ts文件的providers下


如果您只需要在一个页面中使用该类,则可以将其添加到相应页面的page.module.ts文件中。

确保
HttpClientModule
AppModule

级别注册。

我遇到了类似的问题,我在这里找到了解决方案:

我必须进口 “从“@angular/common/http”;”导入{HttpClientModule}” 导入:[HttpClientModule],在引用组件的模块内。

在应用程序模块中

您必须在顶部添加:

import {AccessProviders} from "../../providers/access-providers";
在同一个文件上,找到提供者,只需将AccessProviders添加到提供者列表中