Angular 带有类型为“quot”的参数的问题&引用;不可分配给字符串[]类型的参数器-用于
我正在尝试使用visual studio部署我的应用程序,当我运行“node\u modules\webpack”时 \bin\webpack.js--env.prod“我得到了下面的错误,我还将(“strictNullChecks”:false)添加到了我的ts.config.json中,但它仍然不起作用,如果您能帮我解决这个问题,我们将不胜感激 错误 这是我的fetchemployee.component.ts 这是我的AddEmployee.component.htmlAngular 带有类型为“quot”的参数的问题&引用;不可分配给字符串[]类型的参数器-用于,angular,typescript,Angular,Typescript,我正在尝试使用visual studio部署我的应用程序,当我运行“node\u modules\webpack”时 \bin\webpack.js--env.prod“我得到了下面的错误,我还将(“strictNullChecks”:false)添加到了我的ts.config.json中,但它仍然不起作用,如果您能帮我解决这个问题,我们将不胜感激 错误 这是我的fetchemployee.component.ts 这是我的AddEmployee.component.html {{title}
{{title}}
雇员扣除额
姓名:
名称是必需的。
受雇者
编号:
员工编号是必需的。
Pur类型:
--选择Pur类型--
管理信息系统
TLS
统一
Pur类型是必需的
付款交单:
--选择付款交单--
B
P
付款交单是必需的
金额:错误指向该行
<span class="text-danger"
*ngIf="employeeForm.hasError('required', 'amount') && formDir.submitted">
您试图将'amount'
作为的第二个参数传递,但正如您在文档(以及错误消息)中所看到的,第二个参数应该是字符串的数组
import { Component, Inject, SimpleChange, SimpleChanges } from
'@angular/core';
import { Http, Headers } from '@angular/http';
import { Router, ActivatedRoute } from '@angular/router';
import { saveAs } from 'file-saver/FileSaver';
import { EmployeeService } from '../../services/empservice.service'
@Component({
selector: 'fetchemployee',
templateUrl: './fetchemployee.component.html',
styleUrls: ['./fetchemployee.component.css']
})
export class FetchEmployeeComponent {
public empList: EmployeeData[] | any;
constructor(public http: Http, private router: Router, private
employeeService: EmployeeService) {
this.getEmployees();
}
getEmployees() {
this.employeeService.getEmployees().subscribe(
data => this.empList = data
)
}
delete(employeeID) {
var ans = confirm(`Are you shoure you want to delete this deduction
for: ${employeeID}`);
if (ans) {
this.employeeService.deleteEmployee(employeeID).subscribe
((data) => {
this.getEmployees();
},
error => console.error(error))
}
}
getSum(column, e: any[]): string {
let sum = 0;
for (let i = 0; i < e.length; i++) {
console.log("Yo the array is " + e.length);
sum += parseFloat(e[i][column]);
}
return sum.toLocaleString('en');
}
exportEsker(data: any) {
const replacer = (key, value) => value === null ? '' : value; //
specify how you want to handle null values here
const k = ["name", "empno", "purtype", "bp", "amount"];
//Object.keys(data[0]);
const actualheader = ["Employee Name", "Employee No.", "Pur. Type",
"B/P", "Amount"];
console.log(k);
console.log(data);
let csv = data.map(row => k.map(fieldName => JSON.stringify(row
[fieldName], replacer)).join(','));
csv.unshift(actualheader.join(','));
let csvArray = csv.join('\r\n');
console.log(csvArray);
var blob = new Blob([csvArray], { type: 'text/csv' });
saveAs(blob, "myFile.csv");
}
term: string = "";
}
interface EmployeeData {
id: number;
name: string;
empno: string;
purtype: string;
bp: string;
amount: number;
}
import { Component, OnInit } from "@angular/core";
import { Http, Headers } from "@angular/http";
import { NgForm, FormBuilder, FormGroup, Validators, FormControl } from
"@angular/forms";
import { Router, ActivatedRoute } from "@angular/router";
import { FetchEmployeeComponent } from
"../fetchemployee/fetchemployee.component";
import { EmployeeService } from "../../services/empservice.service";
@Component({
selector: "createemployee",
templateUrl: "./AddEmployee.component.html"
})
export class createemployee implements OnInit {
employeeForm: FormGroup;
title: string = "Create";
id: number;
errorMessage: any;
constructor(private _fb: FormBuilder, private _avRoute: ActivatedRoute,
private _employeeService: EmployeeService, private _router: Router)
{
if (this._avRoute.snapshot.params["id"]) {
this.id = this._avRoute.snapshot.params["id"];
}
this.employeeForm = this._fb.group({
id: 0,
name: ["", [Validators.required]],
empno: ["", [Validators.required]],
purtype: ["", [Validators.required]],
bp: ["", [Validators.required]],
amount: ["", [Validators.required]]
});
}
ngOnInit() {
if (this.id > 0) {
this.title = "Edit";
this._employeeService.getEmployeeById(this.id)
.subscribe(resp => this.employeeForm.setValue(resp)
, error => this.errorMessage = error);
}
}
save() {
if (!this.employeeForm.valid) {
return;
}
if (this.title === "Create") {
this._employeeService.saveEmployee(this.employeeForm.value)
.subscribe(() => {
this._router.navigate(["/fetch-employee"]);
}, error => this.errorMessage = error);
}
else if (this.title === "Edit") {
this._employeeService.updateEmployee(this.employeeForm.value)
.subscribe(() => {
this._router.navigate(["/fetch-employee"]);
}, error => this.errorMessage = error);
}
}
cancel() {
this._router.navigate(["/fetch-employee"]);
}
get name() { return this.employeeForm.get("name"); }
get empno() { return this.employeeForm.get("empno"); }
get purtype() { return this.employeeForm.get("purtype"); }
get bp() { return this.employeeForm.get("bp"); }
get amount() { return this.employeeForm.get("amount"); }
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>{{title}}</h1>
<h3>Employee Deduction</h3>
<hr />
<form [formGroup]="employeeForm" (ngSubmit)="save()" #formDir="ngForm"
novalidate>
<div class="form-group row">
<label class=" control-label col-md-12" for="Name">Name:</label>
<div class="col-md-4">
<input class="form-control" type="text" formControlName="name">
</div>
<span class="text-danger" *ngIf="employeeForm.hasError('required',
'name') && formDir.submitted">
Name is required.
</span>
</div>
<div class="form-group row">
<label class=" control-label col-md-12" for="Empno">Employee
Number:</label>
<div class="col-md-4">
<input class="form-control" type="text" formControlName
="empno">
</div>
<span class="text-danger" *ngIf="employeeForm.hasError('required',
'empno') && formDir.submitted">
Employee number is required.
</span>
</div>
<div class="form-group row">
<label class="control-label col-md-12" for="Purtype">Pur Type:</
label>
<div class="col-md-4">
<select class="form-control" data-val="true" formControlName
="purtype">
<option value="">-- Select Pur Type --</option>
<option value="MIS">MIS</option>
<option value="TLS">TLS</option>
<option value="UNI">UNI</option>
</select>
</div>
<span class="text-danger" *ngIf="employeeForm.hasError('required',
'purtype') && formDir.submitted">
Pur Type is required
</span>
</div>
<div class="form-group row">
<label class="control-label col-md-12" for="Bp">B/P:</label>
<div class="col-md-4">
<select class="form-control" data-val="true" formControlName
="bp">
<option value="">-- Select B/P --</option>
<option value="B">B</option>
<option value="P">P</option>
</select>
</div>
<span class="text-danger" *ngIf="employeeForm.hasError('required',
'bp') && formDir.submitted">
B/P is required
</span>
</div>
<div class="form-group row">
<label class=" control-label col-md-12" for="Amount">Amount:</label
<div class="col-md-4">
<input class="form-control" type="number" step="0.01"
formControlName="amount">
</div>
<span class="text-danger" *ngIf="employeeForm.hasError('required',
'amount') && formDir.submitted">
Amount is required.
</span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Save</button>
<button class="btn btn-danger" (click)="cancel()">Cancel</button>
</div>
</form>
</body>
</html>
<span class="text-danger"
*ngIf="employeeForm.hasError('required', 'amount') && formDir.submitted">