如何从角度下拉列表中获取值?

时间:2016-03-17 06:53:54

标签: javascript html angularjs

我正在尝试获取用户从我的下拉列表中选择的值。 我有

<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>标签中获取它。 谢谢你的帮助!

3 个答案:

答案 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)
}