如何在角度<select>中获取选定的选项

时间:2016-02-22 18:24:21

标签: javascript angularjs angular-material

试图弄清楚如何以角度获取所选项目的ID和名称。基本上是全新的js和棱角分明所以不太确定我做错了什么。我确信它很简单,我很想念。 我有一个html元素,看起来像:  &LT; MD-输入容器&GT;      &LT;标签&gt;难度&LT; /标签&gt;      &lt; md-select ng-model =“difficulty”ng-change =“update()”&gt;          &lt; md-option ng-repeat =“难度困难”&gt;              {{difficulty.Name}}          &LT; / MD-选项&GT;     &LT; / MD-选择&GT; &LT; / MD-输入容器&GT; 调用api获取困难列表会返回以下json [{难度ID:1,名称:“简单”},{难度ID:2,名称:“中等”},{难度ID:3,名称:“硬”}] 在我的控制器中,我已经定义了该方法 $ scope.update = function(){             的console.log($ scope.item.Name);         } 总是得到一个未定义的名称。

2 个答案:

答案 0 :(得分:3)

在这种情况下,

ng-value可能会有用。见工作Plunker

<md-select ng-model="difficulty">
     <md-option ng-value="opt" ng-repeat="opt in difficulties" ng-click="update(opt)">
         {{opt.Name}}
     </md-option>
</md-select>

我已引入opt变量以消除difficulty重复。除此之外,我在ng-click上对特定选项而不是ng-change进行md-select

答案 1 :(得分:2)

您选择的选项应位于您在ng-model中设置的模型中。

如果要访问您选择的选项,您应该在范围内测试您的难度模型

$scope.difficulty 

应该保留您选择的项目。

希望看到它正常运行

$scope.$watch('dificulty',function(newVal,oldVal){
  console.log($scope.dificulty);
});

每次更换模型都会打印出来。顺便说一下,我没有使用该指令。但我没有看到该指令的可用属性支持ng-change。

希望有所帮助