Angular中通过repeat出来的DOM元素 如何监听其事件?


clipboard.png
这样循环出来的select,我要如何监听其中一个select的change事件呢?
Angular 新人,求解答

前端 JavaScript angularjs

节操兜售中 11 years, 11 months ago

watch 他的 model


 <select ng-model=something>
$scope.$watch('something',function(){
    //todo
})

你将化作光芒 answered 11 years, 11 months ago

首先你迭代options的方法是冗余的,angular默认提供了 ngOptions 指令来生成option标签,你也可以给一个默认value为空的option,它不会进行覆盖。

其次,select监听事件,可以使用 ngChange 指令,如果你不打算设置ngModel,可以将迭代元素作为参数传递进去,既:


 <select ng-options="item.id as item.name for item in list" ng-change="select(item)"></select>

上面的示范,是将item.id迭代成option的value,item.name迭代成option的text,具体可以参考官方文档。

rabket answered 11 years, 11 months ago

Your Answer