我正在尝试获取用户从我的下拉列表中选择的值。 我有
<select ng-model="item" ng-change="vm.getItem()">
<option value="discount">Discount</option>
<option value="{{::item}}"
ng-repeat="item in vm.items"
ng-bind="item.name"
</option>
</select>
在我的控制器中
vm.getItem = function() {
vm.pickedItem = //not sure what to do...
//I need to get the select item
//please noted that the discount is a stand alone option value. I need to get
//that too if user selects it.
}
我不想使用ng-option
,因为它有一些我不需要的限制。我希望从常规的<option>
标签中获取它。
谢谢你的帮助!
答案 0 :(得分:1)
我建议您使用ngOptions
设置select
元素与适当的模型,即vm.pickedItem
,可以直接在控制器中使用,或者您可以将其传递给您的方法vm.getItem(vm.pickedItem)
<select ng-model="vm.pickedItem" ng-change="vm.getItem(vm.pickedItem )">
<option value="discount">Discount</option>
<option value="{{::item}}"
ng-repeat="item in vm.items"
ng-bind="item.name">
</option>
</select>
答案 1 :(得分:1)
vm.getItem = function() {
var selectedItem = vm.item;
////vm.item is the bound variable to the dropdown's ng-model directive
}
如果你真的想在这个场景中使用ng-change事件,那么你的&#34; getItem&#34;事件,您应该访问绑定到下拉列表模型的模型,该模型名为&#34; item&#34;如你的html标记所示。
答案 2 :(得分:1)
您忘记了select
<select ng-model="vm.item" ng-change="vm.getItem()">
在控制器中
vm.getItem = function() {
console.log(vm.item)
or
console.log(this.item)
}