У меня есть некоторые динамические элементы (то есть список) на странице. Я хочу добавить обработчик для действия onClick для каждого элемента, кроме того, каждый элемент должен вызывать этот обработчик с указанными данными.Как вызвать функцию foo ("someName") с использованием шаблона в AngularJS?
Я попытался это:
ЯШ:
$scope.data = [
{
id: 1,
name: "1",
order: "10"
},
{
id: 2,
name: "2",
order: "20"
},
{
id: 3,
name: "3",
order: "30"
}
];
HTML:
<div ng-repeat="item in data" name="{{ 'name_' + item.id }}" ng-click="onClick({{ '\'name_' + item.id +'\'' }})" value="item">
Item name is "{{ item.name }}"
</div>
Когда я наблюдаю РОМ Я вижу правильный HTML: нг-клик = "OnClick ('name_1') ", но когда я нажимаю на строку, ничего не происходит. Зачем? (также, я получаю длинную красную ошибку angularJS в консоли, заявив, что я действительно ошибаюсь)
Как я могу достичь того, что хочу? Я не говорю, что это должно быть сделано моим подходом. Может быть, есть другой подход - лучше, чем мой (например, использовать некоторое угловое свойство (например, ng-repeat имеет: $ index))
Почему вы не можете просто вызвать onClick (item.id), и создать ли он нужную строку 'name_id'? – Sacho
Поскольку функция уже используется в других элементах. Используется: onFocus ('elementName'). Другие элементы даже не имеют идентификаторов. –
Итак, создайте новую функцию, которая создает строку и вызывает вашу другую функцию. – Sacho