Ionic ENOENT:没有这样的文件或目录
Ionic ENOENT: no such file or director
我正在使用 Ionic。
Cordova CLI: 6.4.0
Ionic Framework Version: 3.1.1
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
Ionic App Scripts Version: 1.3.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: macOS Sierra
Node Version: v7.10.0
Xcode version: Xcode 8.3.2 Build version 8E2002
我收到以下错误:
core.es5.js:1084 ERROR Error: Uncaught (in promise): Error: Module build failed: Error: ENOENT: no such file or directory, open
'/Users/richardmarais/Development/ionic/theWhoZoo/src/pages/model/ratingModel.js'
Error: Module build failed: Error: ENOENT: no such file or directory, open
'/Users/richardmarais/Development/ionic/theWhoZoo/src/pages/model/ratingModel.js'
当我尝试访问以下页面时:
review/review.ts
...
import { RatingModel } from '../model/ratingModel';
@IonicPage()
@Component({
templateUrl: 'review.html'
})
export class ReviewPage {
...
model/ratingModel.ts
import { Injectable } from "@angular/core";
import { PersonModel } from './personModel';
import { JobModel } from './jobModel';
@Injectable()
export class RatingModel {
public id: number = null;
public job: JobModel = null;
public review: string = null;
public rating: number = null;
public reviewDate: number = null;
public time: string = null;
public person: PersonModel = null;
public anonymous: number = null;
}
这一直有效,直到我将页面更改为使用延迟加载。
review/review.module.ts
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ReviewPage } from './review';
import { ControlMessagesModule } from '../validation/controlMessages.module';
import { RatingComponentUpdateableModule } from '../utils/rating/ratingComponentUpdateable.module';
@NgModule({
declarations: [ReviewPage],
imports: [IonicPageModule.forChild(ReviewPage), ControlMessagesModule, RatingComponentUpdateableModule],
exports: [ReviewPage]
})
export class ReviewPageModule { }
更新
我发现错误的发生是由于以下原因:
this.ratingModel = navParams.get('ratingModel');
if (!this.ratingModel) {
this.ratingModel = new RatingModel();
当我删除 new RatingModel()
行时,我没有收到任何错误。
你应该如何创建一个新的 RatingModel
?
这里的问题是您正在使模型 class 成为 injectable。
@Injectable()
export class RatingModel {
您不必将模型 class 设为可注射。
如果您确实需要这样做,则必须将其设置为提供商。
或者尝试从 explicit injector.
中获取一个对象
constructor(private injector: Injector) { }
//..
this.ratingModel = this.injector.get(RatingModel)
我正在使用 Ionic。
Cordova CLI: 6.4.0
Ionic Framework Version: 3.1.1
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
Ionic App Scripts Version: 1.3.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: macOS Sierra
Node Version: v7.10.0
Xcode version: Xcode 8.3.2 Build version 8E2002
我收到以下错误:
core.es5.js:1084 ERROR Error: Uncaught (in promise): Error: Module build failed: Error: ENOENT: no such file or directory, open
'/Users/richardmarais/Development/ionic/theWhoZoo/src/pages/model/ratingModel.js' Error: Module build failed: Error: ENOENT: no such file or directory, open '/Users/richardmarais/Development/ionic/theWhoZoo/src/pages/model/ratingModel.js'
当我尝试访问以下页面时:
review/review.ts
...
import { RatingModel } from '../model/ratingModel';
@IonicPage()
@Component({
templateUrl: 'review.html'
})
export class ReviewPage {
...
model/ratingModel.ts
import { Injectable } from "@angular/core";
import { PersonModel } from './personModel';
import { JobModel } from './jobModel';
@Injectable()
export class RatingModel {
public id: number = null;
public job: JobModel = null;
public review: string = null;
public rating: number = null;
public reviewDate: number = null;
public time: string = null;
public person: PersonModel = null;
public anonymous: number = null;
}
这一直有效,直到我将页面更改为使用延迟加载。
review/review.module.ts
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ReviewPage } from './review';
import { ControlMessagesModule } from '../validation/controlMessages.module';
import { RatingComponentUpdateableModule } from '../utils/rating/ratingComponentUpdateable.module';
@NgModule({
declarations: [ReviewPage],
imports: [IonicPageModule.forChild(ReviewPage), ControlMessagesModule, RatingComponentUpdateableModule],
exports: [ReviewPage]
})
export class ReviewPageModule { }
更新
我发现错误的发生是由于以下原因:
this.ratingModel = navParams.get('ratingModel');
if (!this.ratingModel) {
this.ratingModel = new RatingModel();
当我删除 new RatingModel()
行时,我没有收到任何错误。
你应该如何创建一个新的 RatingModel
?
这里的问题是您正在使模型 class 成为 injectable。
@Injectable()
export class RatingModel {
您不必将模型 class 设为可注射。
如果您确实需要这样做,则必须将其设置为提供商。 或者尝试从 explicit injector.
中获取一个对象 constructor(private injector: Injector) { }
//..
this.ratingModel = this.injector.get(RatingModel)