Я пытаюсь создать Login / SignUp в ионных угловых 3.3.0. Я получаю сообщение об ошибке Не могу найти модуль '../providers/auth-service/auth-service'. в файле login.ts. Пожалуйста помоги!

< Сильный > Auth - service.ts

       import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';

/*
  Generated class for the AuthServiceProvider provider.

  See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  for more info on providers and Angular 2 DI.
*/
export class User {
  name: string;
  email: string;

  constructor(name: string, email: string) {
    this.name = name;
    this.email = email;
  }
}
@Injectable()
export class AuthServiceProvider {
  currentUser: User;
  public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
      return Observable.create(observer => {
        // At this point make a request to your backend to make a real check!
        let access = (credentials.password === "pass" && credentials.email === "email");
        this.currentUser = new User('ian', 'ianlikono@gmail.com');
        observer.next(access);
        observer.complete();
      });
    }
  }
 public register(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
      // At this point store the credentials to your backend!
      return Observable.create(observer => {
        observer.next(true);
        observer.complete();
      });
    }
  }
   public getUserInfo() : User {
    return this.currentUser;
   }

  public logout() {
    return Observable.create(observer => {
      this.currentUser = null;
      observer.next(true);
      observer.complete();
    });
  }
}

< Сильный > login.ts

import { Component } from '@angular/core';
import { NavController, AlertController, LoadingController, Loading, IonicPage } from 'ionic-angular';
import { AuthServiceProvider } from '../providers/auth-service/auth-service';

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',  
})
export class LoginPage {
  loading: Loading;
  registerCredentials = { email: '', password: '' };

  constructor(private nav: NavController, private auth: AuthServiceProvider, private alertCtrl: AlertController, private loadingCtrl: LoadingController) { }

  public createAccount() {
    this.nav.push('RegisterPage');
  }

  public login() {
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {        
        this.nav.setRoot('HomePage');
      } else {
        this.showError("Access Denied");
      }
    },
      error => {
        this.showError(error);
      });
  }

  showLoading() {
    this.loading = this.loadingCtrl.create({
      content: 'Please wait...',
      dismissOnPageChange: true
    });
    this.loading.present();
  }

  showError(text) {
    this.loading.dismiss();

    let alert = this.alertCtrl.create({
      title: 'Fail',
      subTitle: text,
      buttons: ['OK']
    });
    alert.present(prompt);
  }
}

Структура программы ScreenShot:
Структура программы ScreenShot

4
Ian Likono 28 Май 2017 в 12:45

2 ответа

Лучший ответ

В структуре вашего проекта ваш login.ts находится внутри папки входа в систему, а папка login находится внутри папки pages.

Итак, чтобы добраться до providers папки, вам нужно написать

'../../providers/auth-service/auth-service'

Это должно переместить вас из двух папок, которые должны решить проблему.

13
ashfaq.p 28 Май 2017 в 11:21

Если вы используете VS Code, установите плагин «Typescript Hero» и «Typescript Toolbox», который поможет вам с импортом.

На самом деле «Typescript Toolbox» показывает лампочку, когда вы фокусируете курсор на импортированном элементе, и вы можете выбрать из лампочки импорт. Очень полезно.

0
Mystearica 28 Май 2017 в 14:54