Добавление ng-click внутри элемента tr

В этой скрипте я пытаюсь запустить предупреждение в элементе ‹tr› при нажатии на элемент:

http://jsfiddle.net/q8r4e/503/

Код :

<tr ng-controller="MyController" ng-click="alert()">alert
</tr>

function MyController($scope) {

    $scope.alert = function() {
        alert('here');
    };

}

Но ничего не стреляет. Возможно ли это в angular? Причина, по которой я пытаюсь использовать ‹tr›, заключается в том, что я пытаюсь представить базу кода AngularJS indo и начинаю с слушателей в таблице.


person blue-sky    schedule 11.06.2014    source источник


Ответы (1)


Я вижу пару проблем, одна из которых заключается в том, что вы находитесь в tr, но ваш текст предупреждения не находится в td, так что это будет основной, если вы исправите, что это должно работать. Попробуйте сделать это:

<tr ng-click="alert()"><td>alert</td></tr>

Вот код, демонстрирующий http://jsfiddle.net/6L4Kz/.

person Mathew Berg    schedule 11.06.2014
comment
Angular может придираться к недопустимому html, хорошо улавливает текст, не находящийся в td. Вы можете указать, что нет необходимости размещать контроллер на обертке, он может быть просто на tr. - person lucuma; 11.06.2014
comment
Я видел несколько вопросов о том, что ng-repeat не работает при попытке построить таблицу, и причиной иногда является недопустимый html внутри tr или td или div внутри tbody. stackoverflow.com/questions/23206641/ - person lucuma; 11.06.2014