У меня есть приложение БД для строящейся HR-компании.Я использую Angular 4 с angularfire2 и Firebase.В моем кандидате. Component.ts у меня есть этот код, который должен добавить нового кандидата.Параметр «resol» показан как неиспользуемый, и я не понимаю, почему.Когда я вызываю функцию, обслуживающую приложение, она переходит вправо к другому параметру и выдает ошибку.Я оставлю здесь код, чтобы вы могли проверить его:
validation(): boolean {
if (!this.candidate.first_name || !this.candidate.email || !this.candidate.data_nasterii || !this.candidate.oras ||
!this.candidate.domain) {
return false
}
return true;
}
addCandidate() {
console.log(this.candidate);
if (this.validation()) {
const date = this.candidate.data_nasterii;
this.candidate.data_nasterii = date.year + '/' + date.month + '/' + date.day;
this.candidateService.createItem(this.candidate).then(resolve => {
this.success = true;
console.log('Candidate added successfully...');
setTimeout(function () {
this.success = false;
this.cValue('Success click');
this.candidate = new Candidate();
}.bind(this), 1500);
}, reject => {
this.failure = true;
console.log('Error adding new candidate...');
setTimeout(function () {
this.failure = false;
}.bind(this), 1500);
});
} else {
this.failure = true;
console.log('Error adding new candidate...');
setTimeout(function () {
this.failure = false;
}.bind(this), 1500);
}
}
}
HTML
<div>
<div *ngIf="success" class="alert alert-success" role="alert" style="margin-left: 8px; margin-right: 8px;">
<strong>Success!</strong> The candidate has been added.
</div>
<div *ngIf="failure" class="alert alert-danger" role="alert" style="margin-left: 8px; margin-right: 8px;">
<strong>Error!</strong> Check all the fields below and try again.
</div>
<div class="col-xl text-xs-center" style="padding-bottom: 14px;">
<div class="card card-default">
<div class="card-block">
<h6>Full name</h6>
<div class="input-group">
<input class="form-control" placeholder="Name..."
name="first_name" [(ngModel)]="candidate.first_name">
<div class="input-group-addon">
<span class="fa fa-user"></span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl text-xs-center" style="padding-bottom: 14px;">
<div class="card card-default">
<div class="card-block">
<h6>Email</h6>
<div class="input-group">
<input class="form-control" placeholder="Email..."
name="email" [(ngModel)]="candidate.email">
<div class="input-group-addon">
<span class="fa fa-envelope"></span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl text-xs-center" style="padding-bottom: 14px;">
<div class="card card-default">
<div class="card-block">
<h6>Date of birth</h6>
<div class="input-group">
<input class="form-control" placeholder="yyyy/mm/dd"
name="dp" [(ngModel)]="candidate.dob" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-addon" (click)="d.toggle()">
<span class="fa fa-calendar"></span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl text-xs-center" style="padding-bottom: 14px;">
<div class="card card-default">
<div class="card-block">
<h6>City</h6>
<div class="input-group">
<input class="form-control" placeholder="City..."
name="phone" [(ngModel)]="candidate.city">
<div class="input-group-addon">
<span class="fa fa-globe"></span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl text-xs-center" style="padding-bottom: 14px;">
<div class="card card-default">
<div class="card-block">
<h6>Domain</h6>
<div class="input-group">
<input class="form-control" placeholder="Domain..."
name="phone" [(ngModel)]="candidate.domain">
<div class="input-group-addon">
<span class="fa fa-briefcase"></span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /.row -->
<div class="modal-footer">
<button type="button" class="btn btn-outline-primary" (click)="addCandidate()">Add</button>
</div>
И мой app.module.ts
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {Http, HttpModule} from '@angular/http';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {AppRoutingModule} from './app-routing.module';
import {AppComponent} from './app.component';
import {AuthGuard} from './shared';
import {AngularFireModule} from 'angularfire2';
import {AngularFireAuthModule} from 'angularfire2/auth';
import {AuthService} from './login/auth.service';
import {Ng4LoadingSpinnerModule} from 'ng4-loading-spinner';
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import {ConversationComponent} from "./layout/conversation/conversation.component";
import {UsersService} from "./shared/services/users.service";
import {ConversationService} from "./layout/conversation/conversation.service";
// email api key
// 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
// AoT requires an exported function for factories
export function HttpLoaderFactory(http: Http) {
// for development
// return new TranslateHttpLoader(http, '/start-angular/SB-Admin-BS4-Angular-4/master/dist/assets/i18n/', '.json');
return new TranslateHttpLoader(http, '/assets/i18n/', '.json');
}
export const firebaseConfig = {
apiKey: "###-k",
authDomain: "######",
databaseURL: "#######",
projectId: "####",
storageBucket: "######",
messagingSenderId: "#####"
};
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
HttpModule,
AppRoutingModule,
AngularFireModule.initializeApp(firebaseConfig),
AngularFireAuthModule,
AngularFireDatabaseModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
}),
Ng4LoadingSpinnerModule
],
providers: [AuthGuard, AuthService],
bootstrap: [AppComponent]
})
export class AppModule {
}