Mam bibliotekę javascript z wieloma przydatnymi funkcjami, z których korzystam na mojej stronie internetowej, która robi różne rzeczy.wywołanie funkcji javascript poza zakresem ng-click
Wiem, że nie mogę uzyskać dostępu do tych funkcji z ng-click, ponieważ funkcje są poza zakresem.
Czy istnieje sposób dostępu do nich bez konieczności zadeklarowania funkcji zasięgu, która po prostu wykonuje połączenie z funkcją w bibliotece?
to jsfiddle z przykładem. Chciałbym wiedzieć, czy istnieje sposób na to, aby drugi link działał. Jest tak dlatego, że nie podoba mi się pomysł zdefiniowania funkcji, która po prostu wywoła inną funkcję. na przykład
HTML:
<div ng-click="doSomething()">Click Me (Working)</div>
<div ng-click="doSomethingElse()">Click Me (Not Working)</div>
Controller JS:
$scope.doSomething = function() {
doSomethingElse();
};
Zewnętrzna biblioteka JS:
function doSomethingElse() {
alert("SomethingElse");
}
< ------- ------ UPDATE ->
Dzięki za kreatywne odpowiedzi facetów! Odpowiedź Vinaya K jest najłatwiejsza i najbardziej oczywista, ale zdecydowałem się pójść z odpowiedzią Rona E. Powodem jest to, że mam już globalny moduł z kolekcją dyrektyw wielokrotnego użytku, co ułatwiłoby i ułatwiłoby implementację w moim kodzie HTML. Również dlatego, że czasami używać więcej niż jednej funkcji z biblioteki, a następnie będzie musiał łańcucha je w onclick:
onlick="func1(); func2(); func3();"
Gdzie dyrektywy jest po prostu czystsze i mogę zadzwonić, jak wiele funkcji, jak lubię robiąc inne rzeczy także.
Nie, nie można nazwać nieprzestrzegania $ zakres funkcji z widoku, możesz zrobić '$ scope.doSomething = doSomethingElse;' – tymeJV