2014-10-28 7 views
0

Я показываю просмотр списка в угловом режиме, используя ng-repeat .I способен отображать список. Обычно в каждой строке есть одна радиокнопка. И у меня есть одна кнопка на экране. Я хочу получить объект выбранной радио кнопки на нажатие кнопки. Иными словами, если я выбираю переключатель первой строки, то, если я нажимаю кнопку, мне нужно получить объект, как я это добьюсь?Как получить значение объекта при нажатии кнопки в угловом?

вот мой код

<table> 

    <tr id="$index"ng-repeat= "a in data " ng-click="getselectedRow(a)"> 
     <td> {{a.condidateID}} </td> 
     <td> {{a.condidateName}} </td> 
     <td> {{a.territory}} </td> 
     <td> {{a.voteCount}} </td> 
     <td> <input type="radio" name="chickenEgg" value="egg" ng-model="chekratiovalue"></td> 

    </tr> 
</table> 
     <button style="left: 40%;top: 40%;float: left;position: relative" ng-click="voteForPerson()">Vote</button> 

Update

function userdetail($scope,$http,$location,$routeParams){ 
     console.log(JSON.parse($routeParams.userDetail)); 
     var userDetail=JSON.parse($routeParams.userDetail); 
     $scope.data=userDetail.data; 
     console.log($scope.data); 
     console.log($scope.data); 
     $scope.changeEvnt = function(index) { 
      $scope.activeRow = index; 
      alert($scope.activeRow); 
     } 

     $scope.voteForPerson = function() { 
      var selcted = $scope.data[activeRow ]; 
     } 
    } 


<table> 

    <tr id="$index"ng-repeat= "a in data " ng-click="getselectedRow(a)"> 
     <td> {{a.condidateID}} </td> 
     <td> {{a.condidateName}} </td> 
     <td> {{a.territory}} </td> 
     <td> {{a.voteCount}} </td> 
     <td> <input type="radio" name="chickenEgg" value="egg" ng-model="chekratiovalue" ng-change="changeEvnt($index)"></td> 

    </tr> 
</table> 
     <button style="left: 40%;top: 40%;float: left;position: relative" ng-click="voteForPerson()">Vote</button> 
+0

Вам необходимо пройти $ индекс вашей функции мыши. – user2808895

+0

где проходить? Кнопка не имеет экрана и радио кнопки на каждой строке. Только одна радио кнопка выбрана за один раз – user944513

ответ

1

добавить ng-change директиву,

<input type="radio" name="chickenEgg" value="egg" ng-model="chekratiovalue" ng-change="chengeEvnt($index)"> 

В контроллере

$scope.chengeEvnt = function(index) { 
    $scope.activeRow = index;  // get the index when changing the radio button 
} 

$scope.voteForPerson = function() { 
    var selected = $scope.data[$scope.activeRow]; // get the row of selected radio button using the `$scope.activeRow` function 
} 
+0

это работает в первый раз ... подождите, я расскажу вам, что происходит – user944513

+0

, пожалуйста, проверьте это обновление ..и я примените ваш anser – user944513

+0

, пожалуйста, уточните мой обновленный ответ :) –

1

вы можете использовать нотацию $ parent при нажатии переключателя внутри ng-repeat.

<table> 

    <tr id="$index" ng-repeat= "a in data "> 
     <td> {{a.condidateID}} </td> 
     <td> {{a.condidateName}} </td> 
     <td> {{a.territory}} </td> 
     <td> {{a.voteCount}} </td> 
     <td> <input type="radio" name="chickenEgg" value="{{a.chekratiovalue}}" ng-model="$parent.chekratiovalue"></td> 

    </tr> 
</table> 

Это необходимо, так как ng-repeat создает свой собственный объем.

Working Example

+0

@ user944513: Помогло ли это? – V31

0

Вам просто нужно использовать

ng-value="item" 

и вы можете получить любую информацию, которую вы хотите оттуда.

Вот plunker

Смежные вопросы