2014-09-18 3 views
0

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

, когда я нажал на `[7] Себастьян, который 50 лет

<button ng-click="show_id($index)">get my id</button> 

Я хочу, чтобы оповещения значение должно быть 7 не 0, но он предупреждает 0

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Example</title> 



    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.1/angular.min.js"></script> 


<script> 
angular.module("my_app",[]) 
.controller("my_ctr",function($scope){ 

    $scope.show_id=function(index){ 
     alert(index); 
    } 
}) 
</script> 

</head> 
<body ng-app="my_app" ng-controller="my_ctr"> 
    <div ng-init="friends = [ 
    {id:1, name:'John', age:25, gender:'boy'}, 
    {id:2, name:'Jessie', age:30, gender:'girl'}, 
    {id:3, name:'Johanna', age:28, gender:'girl'}, 
    {id:4, name:'Joy', age:15, gender:'girl'}, 
    {id:5, name:'Mary', age:28, gender:'girl'}, 
    {id:6, name:'Peter', age:95, gender:'boy'}, 
    {id:7, name:'Sebastian', age:50, gender:'boy'}, 

    ]"> 
    I have {{friends.length}} friends. They are: 

    <ul> 
     <li ng-repeat="friend in friends.slice().reverse() "> 
     [{{friend.id}}] {{friend.name}} who is {{friend.age}} years old. 
     <button ng-click="show_id($index)">get my id</button> 

     </li> 

    </ul> 
    </div> 
</body> 
</html> 

Я хочу сделать редактирование и обновить эту конкретную запись, как я могу это сделать?

+0

Когда эта кнопка нажата, вы хотите, чтобы предупредить 'id' значение этого друга? Итак, '7' для' 'Sebastian'',' 3' за '' Johanna'', '5' за' 'Mary'' и т. Д.? – Cerbrus

+0

Да ... но не только оповещение, но я хочу работать, как редактировать и обновлять. Но решение не получилось. –

+0

Редактировать функциональность немного шире для ответа здесь. Я бы посоветовал вам взглянуть на учебник, подобный этому: http://angular.codeschool.com/ – Cerbrus

ответ

2

Поскольку вы ищете id "текущего друга", просто используйте id представленную в вашем объекте:

Заменить:

<button ng-click="show_id($index)">get my id</button> 

С:

<button ng-click="show_id(friend.id)">get my id</button> 
+0

ID может отличаться от индекса. –

+0

@ Зачётчик: посмотрите, что должна делать кнопка: _ «get my id» _. Это делает __exactly that__ Весь индекс массива был неправильным способом обойти это. Даже желаемое выходное значение '7' исправляет' id' и имеет значение __nothing__ для индекса элемента. – Cerbrus

+0

При переполнении стека ОП не всегда прав, как он исправляет проблему. Вы могли бы подумать, что кто-то из 13k-респондентов узнал бы об этом. – Cerbrus

-1

Поскольку вы выполняете итерацию на обратной стороне списка, вы не можете получить индекс исходного списка

, чтобы получить, что вам нужно использовать ниже

ng-click="show_id(friends.length-$index)" 
Смежные вопросы