2016-02-22 76 views
4

試圖找出如何獲得角度中所選項目的ID和名稱。基本上全新的js和角度,所以不太確定我做錯了什麼。我確定它很簡單,我錯過了。如何獲得角度中的選定選項<select>

我有一個看起來像一個HTML元素:

<md-input-container> 
    <label>Difficulty</label> 
    <md-select ng-model="difficulty" ng-change="update()"> 
     <md-option ng-repeat="difficulty in difficulties"> 
      {{difficulty.Name}} 
     </md-option> 
    </md-select> 
</md-input-container> 

調用API來獲取困難的名單還給下面的JSON

[{DifficultyID: 1, Name: "Easy"}, {DifficultyID: 2, Name: "Medium"}, {DifficultyID: 3, Name: "Hard"}] 

在我的控制器中我已經定義的方法

$scope.update = function() { 
      console.log($scope.item.Name); 
     } 

總是得到一個未定義的名稱。

回答

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

+0

沒錯。謝啦。 –

+1

酷!樂於幫助! – oKonyk

2

您選擇的選項應該在您在ng-model中設置的模型中。

這就是說訪問您所選的選項您應該測試難度模型範圍

$scope.difficulty 

應該把你所選的項目。

想看看它的工作嘗試

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

在每個模型改變它會被打印出來。順便說一句,我沒有使用該指令。但是我沒有看到該指令的可用屬性支持ng-change。

希望它可以幫助

+0

噢,以及我可以得到這個工作,除非我似乎沒有訪問的難度,這主要是我'之後。 –

+0

嘗試首先在控制器上初始化變量。所以把$ scope.dificulty = someValue – jstuartmilne