2013-08-02 29 views
4

我是Angular的新手,我試圖捕獲選定的無線電值,但使用ng-repeat時文檔不清晰。任何幫助將不勝感激。ng-repeat中的角度無線電值

<div ng-repeat="item in ed"> 
    <label for="{{item['code']}}"> 
    <input ng-change="getPlanTypes()" ng-model="ed" type="radio" id="{{item['code']}}" name="effective_date" value="{{item['code']}}"> 
    {{item['date']}} </label> 
</div> 

這裏是控制器,但我不確定正確的方式來獲取選定的無線電值?

rates.controller('getEffectiveDates', 
    function($scope, $http, $location, myService, localStorageService) { 
     myService.effective_dates().then(function(ed) { 
     $scope.ed = ed; 
    }); 

    $scope.getPlanTypes = function() { 
     console.log($scope.ed['code']); //Futile attempt that returns undefined 
     localStorageService.add('code',$scope.ed['code']); 
     $location.path("/plan-types"); 
    }  
}); 
+0

看起來應該根據所選擇的無線電的值,來更新NG-模型,如果你這樣做,而不是:執行console.log($ scope.ed); – shaunhusain

回答

3

ng-click="getPlanTypes(item.code)" 

和控制器,你可以得到價值

$scope.getPlanTypes = function (ed) { 
    console.log(ed); 
} 
+0

這也是我的第一個想法,但我在小提琴中嘗試過這種方式,而ng-change似乎只在點擊時爲每個單選按鈕觸發一次,但稍後點擊時不會再觸發任何想法? – shaunhusain

+0

已更新。用'ng-click'代替'ng-change' – zsong

+0

謝謝!完美的作品。 – suncoastkid

0

http://jsfiddle.net/2LZpv/

的HTML

<div ng-app="myApp" ng-controller="getEffectiveDates"> 
<div ng-repeat="item in ed"> 
    <label for="{{item['code']}}"> 
     <input ng-click="getPlanTypes(item)" ng-model="ed" type="radio" id="{{item['code']}}" name="effective_date" value="{{item['code']}}"/> 
    {{item['date']}} </label> 
</div> 
</div> 

的JS

angular.module("myApp",[]).controller('getEffectiveDates', ["$scope", function($scope) { 

    $scope.ed = [{code:'1',date:"test date 1"},{code:'2',date:"test date 2"}]; 

    $scope.getPlanTypes = function(selectedItem) { 
     console.log(selectedItem["code"]); //Feeble attempt that returns undefined 
    }  
}]);