2015-04-16 2 views
0

У меня есть простая кнопка, где я вызываю ng-click (что отлично работает), и я хотел бы вызвать jQuery, щелкнув эту ту же кнопку, чтобы вызвать некоторый jQuery, делая некоторые угловой материал.jQuery click в сочетании с AngularJS ng-click not triggering

Вот моя кнопка

<button type="button" class="btn btn-md updateUser" ng-click="openFormForUpdate(client.id)">{{ __ "Update" }}</button> 

Вот код, который должен быть запущен, но это console.log() не показывает ничего.

var hidden = true; 
$('.updateUser').click(function(){ 
    console.log('Form is now open or closed.'); 
    hidden = !hidden; 
    if(hidden === false) 
     $('.add-user').show(1000); 
    else 
     $('.add-user').hide(1000); 
}); 

Я открыт для всех видов решений!

+0

Каждый раз, когда цикл дайджеста происходит, вы должны повторно связать событие jquery click. :) Одной из причин, которые взаимодействуют с домом непосредственно в угловых, как правило, является плохая идея. –

+0

Значит, я должен привязать его в линию? Или как мне это сделать? –

+0

Переместите код jquery в обработчик углового щелчка. ** ОДНАКО: ** очень вероятно, что сразу после этого события щелчка снова произойдет цикл дайджеста, таким образом прекратив ваше шоу или скройте анимацию. –

ответ

1

Угловой способ для этого следует использовать ng-show или ng-if, чтобы показать или скрыть элемент .add-user.

<button 
    type="button" 
    class="btn btn-md updateUser" 
    ng-click="openFormForUpdate(client.id); addUserHidden = !addUserHidden"> 
    {{ __ "Update" }} 
</button> 
<div 
    class="add-user" 
    ng-if="!addUserHidden"> 
    ... 
</div> 

для анимации, исследования ngAnimate, я не работал с ним много, поэтому я не могу предоставить образец.

+0

Да, это то, что я понял, или что-то в этом роде. Все еще довольно новый для углового, поэтому я не привык к тому, что он может и не может сделать! Знание о ng-show привело меня к этому кодеку http://codepen.io/SusanneLundblad/pen/dabcw?editors=101 –

+0

Обратите внимание, что я включил логику непосредственно в шаблон для простоты, было бы прекрасно справиться с этим в контроллере и обработчике событий щелчка. –

+0

Да, теперь, когда я понял логику, это, вероятно, то, что я буду делать, так как это лучшая практика. –