Пытаюсь запустить приложение с использованием IONIC 3. Но при запуске ionic serve я получаю следующую ошибку
transpile started ...
[05:31:23] typescript: src/pages/signup/signup.ts, line: 68
Property 'submitAttempt' does not exist on type 'SignupPage'.
L68: this.submitAttempt = true;
[05:31:23] ionic-app-script task: "build"
[05:31:23] Error: Failed to transpile program
Error: Failed to transpile program
at new BuildError (/home/gideon/Documents/IONIC/Ecommercegd/E-commerce-ionic-app--master/node_modules/@ionic/app-scripts/dist/util/errors.js:16:28)
at /home/gideon/Documents/IONIC/Ecommercegd/E-commerce-ionic-app--master/node_modules/@ionic/app-scripts/dist/transpile.js:159:20
at new Promise (<anonymous>)
at transpileWorker (/home/gideon/Documents/IONIC/Ecommercegd/E-commerce-ionic-app--master/node_modules/@ionic/app-scripts/dist/transpile.js:107:12)
at Object.transpile (/home/gideon/Documents/IONIC/Ecommercegd/E-commerce-ionic-app--master/node_modules/@ionic/app-scripts/dist/transpile.js:64:12)
at /home/gideon/Documents/IONIC/Ecommercegd/E-commerce-ionic-app--master/node_modules/@ionic/app-scripts/dist/build.js:109:82
at <anonymous>
[ERROR] An error occurred while running subprocess ionic-app-scripts.
ionic-app-scripts build --target cordova --platform browser exited with
exit code 1.
Re-running this command with the --verbose flag may provide more
information.
Я пытался настроить 'sumitAttemt', чтобы просто 'отправить', но показывает ту же ошибку. Также я добавил платформу браузера, выполнив эту команду «ionic cordova platform add browser», которая существовала даже уже и после выполнения «ionic cordova run browser», все та же ошибка. ПОЖАЛУЙСТА, ПОМОГИТЕ !!!
Пожалуйста, ПОМОГИТЕ МНЕ !!
это мой код signup.ts
import { IonicPage, NavController, NavParams ,AlertController } from 'ionic-angular';
import {Http, Headers, RequestOptions} from '@angular/http';
import { HttpClientModule } from '@angular/common/http';
import { HttpModule } from '@angular/http';
import { LoadingController } from 'ionic-angular';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { LoginPage } from '../login/login';
/**
* Generated class for the SignupPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-signup',
templateUrl: 'signup.html',
})
export class SignupPage {
myForm: FormGroup;
//@ViewChild("name") name;
//@ViewChild("username") username;
//@ViewChild("email") email;
//@ViewChild("password") password;
//@ViewChild("confirmpassword") confirmpassword;
constructor(public navCtrl: NavController, public navParams: NavParams,public alertCtrl: AlertController, private http: Http, public loading: LoadingController, public formBuilder: FormBuilder) {
this.myForm = this.formBuilder.group ({
name: ['', Validators.compose([Validators.minLength(5), Validators.pattern('[a-zA-Z ]*'), Validators.required])],
username: ['', Validators.compose([Validators.maxLength(30), Validators.pattern('[a-zA-Z0-9 ]+'), Validators.required])],
password: ['', Validators.compose([Validators.required])],
confirmpassword: ['', Validators.compose([ Validators.required])],
email: ['', Validators.compose([Validators.email, Validators.required])],
});
}
onSubmit(myForm){
this.submitAttempt = true;
if(!this.myForm.valid){
}else{
var headers = new Headers();
headers.append("Accept", 'application/json');
headers.append('Content-Type', 'application/json' );
let options = new RequestOptions({ headers: headers });
let data = {
password: this.myForm.value.password,
name : this.myForm.value.name,
username:this.myForm.value.username,
confirmpassword:this.myForm.value.confirmpassword,
email:this.myForm.value.email
};
let loader = this.loading.create({
content: 'Processing please wait…',
});
loader.present().then(() => {
this.http.post('http://192.168.225.39:8085/register.php',JSON.stringify(data), options)
.map(res => res.json())
.subscribe(res => {
loader.dismiss()
if(res=="Registration successfull"){
let alert = this.alertCtrl.create({
title:"whola,Done",
subTitle:("Login to continue"),
buttons: ['OK']
});
this.navCtrl.push(LoginPage);
alert.present();
}else
{
let alert = this.alertCtrl.create({
title:"oops!!",
subTitle:("Registration unsuccesfull!!"),
buttons: ['OK']
});
alert.present();
}
});
});
}
}
ionViewDidLoad() {
console.log('ionViewDidLoad SignupPage');
}
}
А это мой код RegistrationPage.html
<ion-content class="background">
<img src="../assets/imgs/bas1.png"/>
<ion-card>
<ion-card-header>
SIGNUP
</ion-card-header>
<ion-card-content>
<ion-list no-line>
<form [formGroup]="myForm" novalidate >
<ion-item>
<ion-input input type="text" placeholder="Name" formControlName="name"></ion-input>
</ion-item>
<ion-item no-lines *ngIf="( myForm.get('name').hasError('minlength') || myForm.get('name').hasError('required') ) && myForm.get('name').touched">
<div class="error" *ngIf="myForm.get('name').hasError('required') && myForm.get('name').touched">
Name is required
</div>
<div class="error" *ngIf="myForm.get('name').hasError('minlength') && myForm.get('name').touched">
Maximum of 6 characters
</div>
</ion-item>
<ion-item>
<ion-input input type="text" placeholder="Username" formControlName="username"></ion-input>
</ion-item>
<ion-item no-lines *ngIf="( myForm.get('username').hasError('minlength') || myForm.get('username').hasError('required') ) && myForm.get('username').touched">
<div class="error" *ngIf="myForm.get('username').hasError('required') && myForm.get('username').touched">
username is required
</div>
<div class="error" *ngIf="myForm.get('username').hasError('minlength') && myForm.get('username').touched">
Minimum of 6 characters
</div>
</ion-item>
<ion-item>
<ion-input type="email" placeholder="E-mail" formControlName="email"></ion-input>
</ion-item>
<ion-item no-lines *ngIf="( myForm.get('email').hasError('email') || myForm.get('email').hasError('required') ) && myForm.get('email').touched">
<div class="error" *ngIf="myForm.get('email').hasError('required') && myForm.get('username').touched">
email is required
</div>
<div class="error" *ngIf="myForm.get('email').hasError('email') && myForm.get('email').touched">
Enter valid email
</div>
</ion-item>
<ion-item>
<ion-input type="password" placeholder="Password" formControlName="password"></ion-input>
</ion-item>
<ion-item no-lines *ngIf="( myForm.get('password').hasError('required') ) && myForm.get('password').touched">
<div class="error" *ngIf="myForm.get('password').hasError('required') && myForm.get('password').touched">
password is required
</div>
</ion-item>
<ion-item>
<ion-input type="password" placeholder="confirmPassword" formControlName="confirmpassword"></ion-input>
</ion-item>
<ion-item no-lines *ngIf="( myForm.get('confirmpassword').hasError('required') ) && myForm.get('confirmpassword').touched">
<div class="error" *ngIf="myForm.get('confirmpassword').hasError('required') && myForm.get('confirmpassword').touched">
password should match
</div>
</ion-item>
</form>
<button ion-button block class="google" (click)="onSubmit(myForm)">SIGN-UP</button>
</ion-list>
</ion-card-content>
</ion-card>
</ion-content>
<style type="text/css">
.error
{
color:red;
}
</style>