首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular中的下拉菜单选择not picking

angular中的下拉菜单选择not picking
EN

Stack Overflow用户
提问于 2021-07-31 03:30:31
回答 1查看 109关注 0票数 0

错误

代码语言:javascript
复制
core.js:6479 ERROR TypeError: Cannot read property 'category' of undefined
    at ProductManagementComponent.search (product-management.component.ts:53)
    at ProductManagementComponent_Template_select_ngModelChange_0_listener (product-management.component.html:2)
    at executeListenerWithErrorHandling (core.js:15307)
    at Object.wrapListenerIn_markDirtyAndPreventDefault [as next] (core.js:15351)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:183)
    at SafeSubscriber.next (Subscriber.js:122)
    at Subscriber._next (Subscriber.js:72)
    at Subscriber.next (Subscriber.js:49)
    at EventEmitter_.next (Subject.js:39)
    at EventEmitter_.emit (core.js:25968)

html =我认为我可能在这里做错了什么,但是找不到为什么我选择的数据没有被发送

代码语言:javascript
复制
<select [(ngModel)]= "viewcat" name="pc.category" #pc.category ="ngModel" (ngModelChange)="search($event)">
        <option *ngFor = "let pc of productcategory" [ngValue] = "pc.category">
            {{pc.category|uppercase}}
        </option>
    </select>

viewcat =用于显示数据

代码语言:javascript
复制
public viewcat(){
    return this.httpclient.get("http://localhost:8094/api/ProductCategory");
  }
_____________________________________________________________
public viewcat(){
    this.productser.viewcat().subscribe((pc:{})=>{
      this.productcategory=pc;
      console.log(pc);
    });
  }

search =返回从html发送的数据的集合

代码语言:javascript
复制
 public search(form:NgForm){
    console.log("A");
    console.log(form.value.category);
    this.productser.search(form.value.category).subscribe((pc:{})=>{
      this.productcategory=pc;
      console.log(pc);
    });
  }
_____________________________________________________________
  public search(category:string){
    console.log(category);
    return this.httpclient.get(this.serverurl+"/"+category);
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-31 04:55:11

您将select绑定到ngModel,这意味着您需要在组件中定义该变量。

之后,在您的模型更改事件处理程序中,您可以使用该变量来获取选择值,并基于该值执行任何操作。

代码语言:javascript
复制
<select [(ngModel)]= "category" name="category" (ngModelChange)="search($event)">
  <option *ngFor = "let pc of productCategory" [ngValue] = "pc.category">
      {{pc.category|uppercase}}
  </option>
</select>

组件类代码:-

代码语言:javascript
复制
productCategory = [{
    category:'fruits'
  },
  {
    category:'animals'
}];
category: string;

search(event:any){
    console.log(this.category);
    //Rest of code
}

工作示例:- https://stackblitz.com/edit/angular-ivy-fgaz8c?file=src%2Fapp%2Fapp.component.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68598868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档