改造在线竞拍五

在这里插入图片描述
在这里插入图片描述
1.商品类别
在这里插入图片描述
在这里插入图片描述

getAllCategories(): string[] {
    return ['电子产品', '硬件设备', '图书'];
  }

在这里插入图片描述

import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';
import {ProductService} from '../shared/product.service';

@Component({
  selector: 'app-search',
  templateUrl: './search.component.html',
  styleUrls: ['./search.component.css']
})
export class SearchComponent implements OnInit {

  /*建数据模型*/
  formModel: FormGroup;
  categories: string[];
  constructor(private productService: ProductService, fb: FormBuilder) {
    fb = new FormBuilder();
    this.formModel = fb.group({
      title: ['', Validators.minLength(3)],
      price: [null, this.positiveNumberValidator],
      category: ['-1']
    });
  }

  ngOnInit() {
    this.categories = this.productService.getAllCategories();
  }
  /*正数校验器---》商品价格搜索框*/
  positiveNumberValidator(control: FormControl): any {
    if (!control.value) {
      return null;
    }
    const price = parseInt (control.value, 10);
    if (price > 0) {
      return null;
    } else {
      return { positiveNumber: true};
    }
  }
  onSearch() {
    if (this.formModel.valid) {
      console.log(this.formModel.value);
    }
  }
}

在这里插入图片描述

<!--数据模型与模板连接起来-->
<form [formGroup]="formModel" (ngSubmit)="onSearch()" novalidate>
  <div class="form-group" [class.has-error]="formModel.hasError('minlength','title')">
    <label for="productTitle">商品名称</label>
    <input formControlName="title" type="text" id="productTitle" placeholder="商品名称"
           class="form-control">
    <!--展示错误信息-->
    <span class="help-block" [class.hidden]="!formModel.hasError('minlength','title')">
      请至少输入三个字
    </span>
  </div>
  <div class="form-group" [class.has-error]="formModel.hasError('positiveNumber','price')">
    <label for="productPrice">商品价格</label>
    <input formControlName="price" type="text" id="productPrice" placeholder="商品价格"
           class="form-control">
    <!--展示错误信息-->
    <span class="help-block" [class.hidden]="!formModel.hasError('positiveNumber','price')">
      请输入整数
    </span>
  </div>
  <div class="form-group">
    <label for="productCategory">商品类别</label>
    <select formControlName="category" id="productCategory" class="form-control">
      <option value="-1">请选择</option>
      <option *ngFor="let category of categories" [value]="category">{{category}}</option>
    </select>
  </div>
  <div class="form-group">
    <button type="submit" class="btn btn-primary btn-block">搜索</button>
  </div>
</form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值