2014-12-12 11 views
12

Dlaczego przekazany obiekt zdarzenia $ w funkcji toggleDropdown jest niezdefiniowany?

Jest to oryginalny kod od: http://plnkr.co/edit/koNsQycAAiEmI8jBApS2?p=preview

wyjątkiem, że oryginalny kod nie posiada funkcji toggleDropdown w przycisku znacznika zdefiniowany. Zrobiłem to, ponieważ oryginalny kod NIE otwiera menu na moim komputerze.

używam angularjs 1.3.2 i angularjs-bootstrap 0.11.2

'use strict'; 
angular.module('auth').controller('AccountController', function ($scope) { 

    $scope.status = { 
    isopen: false 
    }; 

    $scope.toggleDropdown = function($event) { 
    $event.preventDefault(); 
    $event.stopPropagation(); 
    $scope.status.isopen = !$scope.status.isopen; 
    }; 

}); 

<!-- Single button --> 
<div class="btn-group" dropdown is-open="status.isopen"> 
    <button ng-click="toggleDropdown()" type="button" class="btn btn-primary dropdown-toggle" dropdown-toggle ng-disabled="disabled"> 
    Button dropdown <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu" role="menu"> 
    <li><a href="#">Action</a></li> 
    <li><a href="#">Another action</a></li> 
    <li><a href="#">Something else here</a></li> 
    <li class="divider"></li> 
    <li><a href="#">Separated link</a></li> 
    </ul> 
</div> 

Odpowiedz

12

Trzeba wyraźnie określić, że są przechodzącą $event zmiennej:

<button ng-click="toggleDropdown($event)"> 
+0

możesz mi powiedzieć, dlaczego również oryginalne plunker z kątowym-ui nie używać funkcji toggleDropdown ale nadal działa! ??? To dziwne ... Dzięki wydaniu $ event działa, myślałem, że kątowe wstrzyknęłoby wydarzenie: P – Pascal

+0

Co masz na myśli? W podanym plunkerze przycisk '' zdarzenie' jest przekazywany –

+0

Ma to miejsce, gdy określasz, gdzie należy wstrzyknąć. '$ event' jest pseudo-zmienną wprowadzoną przez' ng-click'. –

-2

Wygląda mi na to, czego potrzebujesz aby załadować jQuery, aby uzyskać znaczący obiekt zdarzenia. Zobacz mój widelec swojego rzucać: http://plnkr.co/edit/ZpQuz1?p=preview

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
+1

Nie mogę odtworzyć, dlaczego potrzebujesz jquery. Wszystko w plunker działa dobrze bez ... – Pascal

Powiązane problemy