nepster-web
@nepster-web

Как Angularjs сделать подобие $(document).on("click",".edit" ...) ?

Есть такой вод кусок html страницы
<div class="container" ng-app="app" ng-controller="pointController">
    
		<div class="canvas-container cf">
			<canvas id="canvas" width="700" height="400"></canvas>
		</div>
  
        <h2>Координаты: <button class="icon add" ng-click="openWindow('create', 'Создать новую точку')">&nbsp;</button> </h2>

        <div class="tableFix">
            <table class="bordered">
                <thead>
                    <tr>    
                        <th>X</th>
                        <th>Y</th>
                        <th>Описание</th>
                        <th>Опции</th>
                    </tr>
                </thead>
                
                <tbody id="coordsTable"> </tbody>
            </table>
        </div>
    </div>


Он содержит график и таблицу. Таблицы рендерится когда с сервера придут данные.
В таблице есть 2 кнопки, удалить и редактировать.

Они выглядят как-то так:
tableContent += '<button class="icon delete confirm-delete" ng-controller="pointController" on-global-click="openWindow(\'update\', \'Редактировать точку\')">&nbsp;</button>';


Проблема в том, что походу кнопка появляется после получения дома документа и поэтому клик не срабатываем. В jquery это дело я решал вот так:

$(document).on("click",".edit", function() {
         ...
        });


Подскажите пожалуйста как можно это-же сделать с помощью Angularjs ?
  • Вопрос задан
  • 2544 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Собирайте таблицу через ngRepeat и вешайте все через ngClick. Если вам нужно реализовать именно делигированный обработчик, реализуйте пару директив, одна будет ловить всплывающие ивенты и разруливать их, другая будет говорить на какие элементы реагировать. Общение можно организовать через контроллер директивы на родительском элементе (читать про опцию require при объявлении директивы).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы