如何在 angularjs 下拉元素上正确使用 ng-change?
How to use properly ng-change on angularjs dropdown element?
我的模板中有这个下拉列表:
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
<div class="input-group input-group-sm">
<select class="form-control"
data-ng-options="o.name for o in list.itemsStatus"
data-ng-model="list.currentItemsStatus"
ng-change="list.getItems(o.id)">
</select>
</div>
</div>
控制器中的 itemsStatus 是这样定义的:
this.itemsStatus = [{ name: "all", id: 1 }, { name: "new", id: 2 }, { name: "toUpdate", id: 3 }];
选择新项目时,我会发射此功能:
function getItems(status) {
switch (status) {
case 1:
break;
case 2:
break;
case 3:
break;
default:
}
}
但是传递的参数 - status
始终未定义。
如何将所选项目作为参数传递给 getItems() 事件?
ng-change
事件无法将 ng-options
当前项作为值传递。
您已经在 ng-model
中选择了值,因此您可以传递已经具有 o
(当前选择的值)
的模型
ng-change="list.getItems(list.currentItemsStatus.id)"
我的模板中有这个下拉列表:
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
<div class="input-group input-group-sm">
<select class="form-control"
data-ng-options="o.name for o in list.itemsStatus"
data-ng-model="list.currentItemsStatus"
ng-change="list.getItems(o.id)">
</select>
</div>
</div>
控制器中的 itemsStatus 是这样定义的:
this.itemsStatus = [{ name: "all", id: 1 }, { name: "new", id: 2 }, { name: "toUpdate", id: 3 }];
选择新项目时,我会发射此功能:
function getItems(status) {
switch (status) {
case 1:
break;
case 2:
break;
case 3:
break;
default:
}
}
但是传递的参数 - status
始终未定义。
如何将所选项目作为参数传递给 getItems() 事件?
ng-change
事件无法将 ng-options
当前项作为值传递。
您已经在 ng-model
中选择了值,因此您可以传递已经具有 o
(当前选择的值)
ng-change="list.getItems(list.currentItemsStatus.id)"