首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >角度2(更改)事件未触发

角度2(更改)事件未触发
EN

Stack Overflow用户
提问于 2017-05-10 13:04:03
回答 2查看 23K关注 0票数 5

我的组件中有以下函数:

代码语言:javascript
复制
onProductSelect(e){
        var attrs = document.getElementById('firstAttr');        
        return this.groupComponentSvs.getProduct(e.target.value)
                      .subscribe(
                            selectProduct=>{                                
                                this.selectProduct=selectProduct; 
                                var select = "<select class='form-control' id='"+ selectProduct.attribute +"' (change)='selectNextAttr($event)' name='selectProd'>";
                                console.log(select);
                                    select+= '<option value="0">Select</option>';
                                for (var i=0; i<selectProduct.values.length; i++)  {
                                    select+= '<option value='+ selectProduct.values[i]+ '>'+ selectProduct.values[i] +'</option>';
                                }  
                                select+='</select>' ;                                
                                attrs.innerHTML = '<div id=attr_'+ selectProduct.attribute +'>'+ select +'</div>';                              
                                error=>this.errorMessage = <any>error
                            }                            
                )                 

    }

selectNextAttr(attr, val){
 console.log("this is a test");
}

我能够在我的html页面中插入选择菜单,但是我选择了一个项目,改变事件并没有被触发。有人能告诉我为什么会这样吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-05-10 14:01:51

检查这个答案:https://stackoverflow.com/a/33716321/2114024

尝试:

代码语言:javascript
复制
<select [ngModel]='selectedProduct' 
        class='form-control' 
        [id]='"+ selectProduct.attribute +"' 
        (ngModelChange)='selectNextAttr($event)' name='selectProd'>
票数 4
EN

Stack Overflow用户

发布于 2018-10-17 02:46:05

你的方法:

代码语言:javascript
复制
selectNextAttr(attr, val) {
  console.log("this is a test");
}

这需要两个参数,而在用法中,您只传递了一个:

代码语言:javascript
复制
var select = "<select class='form-control' id='"+ selectProduct.attribute +"' (change)='selectNextAttr($event)' name='selectProd'>";

如果您只想获取所选项目的值,请更改方法签名,如下所示。

代码语言:javascript
复制
selectNextAttr(event) {
  // this will give the selected item value.
  console.log("this is a test", event.target.value);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43883920

复制
相关文章

相似问题

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