2015-10-12 17 views
0

我無法將值從我的選項卡傳遞給me $ scope對象。 這是我的html代碼片段。如何訪問angularJS中的<select>的值

<div ng-controller="RouteController"> 
      <select ng-model="selector" ng-options="opt as opt.label for opt in options"> 

      </select> 
      <button ng-click="selectFn()">Go</button> 
</div> 

我的JS代碼如下。

sampleApp.controller('RouteController', function($scope){ 

     $scope.options=[ 
      {label: '1', url:'1.html'}, 
      {label: '2', url:'2.html'} 

     ]; 
     $scope.selectFn = function($scope){ 
       alert("selector"); 

     } 

    }); 

我不確定如何將選定項目的值傳遞給警報。

回答

1

你可能會使用這樣的NG-模型,因爲NG-模式陷入困境可能不會每當值更新更改:

ng-model="selector" 

使用ng模型的正確方法是;

ng-model="opt.selector" 

通過這樣做,它可以達到像這樣的$範圍;

$scope.opt.selector 

那麼你應該修改代碼如下:

$scope.selectFn = function(){ 
    console.log($scope.opt.selector); 
} 

簡單地說,如果你使用的是NG的模式,你必須包括一個點。

+0

謝謝Serhan,工作! –

+0

很高興幫助@Vedant –

0

要擴大Vineet的答案,你不需要做任何事情來「傳遞」價值。 Angular的模型綁定爲你處理。

因爲你有這樣的: NG-模型=「選擇」 ...

當曾經選擇的值發生變化時,選擇對象將自動$範圍與新值更新。所以,只要執行selectFn(),並確保你通過$範圍正確引用您的對象:

$scope.selectFn = function(){ 
    alert($scope.selector); 
}