2016-04-28 2 views
3

http://jsfiddle.net/u0jzkye1/Pass массив в нг щелкните

<div ng-app ng-controller="MyCtrl"> 
    <ul> 
     <li ng-repeat="item in items">{{item.name}}</li> 
    </ul> 
    <button type="submit" ng-click="send()"> 
    Send 
    </button> 
</div> 

Когда кнопка не в нг-повтора, как я могу передать идентификатор моего элемента в функции нг-клик?

+0

Какой идентификатор вам нужно отправить через клик? Если он динамический, вам придется привязать его к самому ng-repeat. Иначе вы можете передать его как статическое значение. –

ответ

2

Well items уже на $scope, поскольку вы используете его в своем ng-repeat. Таким образом, вы просто должны быть в состоянии ng-click="send(items)"

+0

Это абсолютно правильно. на самом деле события, касающиеся состояний, сохраненных в области контроллера, мало нуждаются в аргументах получения. – Sombriks

0

var items = [{ 
 
    id: 1, 
 
    name: "one" 
 
}, { 
 
    id: 2, 
 
    name: "two" 
 
}]; 
 

 
function MyCtrl($scope) { 
 
    $scope.items = items; 
 

 
    $scope.send = function() { 
 
    //get items' id 
 
    $scope.items.forEach(function(item){ 
 
     alert(item.id); 
 
    }, this); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app ng-controller="MyCtrl"> 
 
    <ul> 
 
    <li ng-repeat="item in items">{{item.name}}</li> 
 
    </ul> 
 
    <button type="submit" ng-click="send()"> 
 
    Send 
 
    </button> 
 
</div>

+0

Я знаю forEach, но для чего это? – Jennifer

+0

@Jennifer Это параметр 'thisArg', он предоставляется' forEach() ', он будет передан для обратного вызова при вызове, для использования в качестве значения' this'. – DININDU

+0

@ Дженифер Читайте документ отсюда https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach – DININDU

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