W ten sposób udało mi się wywołać kliknięcie przycisku podczas wczytywania strony.
<li ng-repeat="a in array">
<a class="button" id="btn" ng-click="function(a)" index="$index" on-load-clicker>
{{a.name}}
</a>
</li>
Prosty dyrektywa, która zajmuje indeks z NG-repeat i wykorzystuje stan zadzwonić pierwszy przycisk w indeksie i kliknij go, gdy strona ładuje.
angular
.module("myApp")
.directive('onLoadClicker', function ($timeout) {
return {
restrict: 'A',
scope: {
index: '=index'
},
link: function($scope, iElm) {
if ($scope.index == 0) {
$timeout(function() {
iElm.triggerHandler('click');
}, 0);
}
}
};
});
To był jedyny sposób, w jaki mogłem programować automatyczne programowanie w pierwszej kolejności.angular.element(document.querySelector('#btn')).click();
Nie działa z poziomu kontrolera, więc ta prosta dyrektywa wydaje się najbardziej skuteczna, jeśli próbujesz uruchomić kliknięcie na stronie ładowania i możesz określić, który przycisk kliknąć, przechodząc do indeksu. Pomógł mi ten komunikat o przepełnieniu stosu z innego wpisu: https://stackoverflow.com/a/26495541/4684183 Dyrektywa onLoadClicker.
Czy możesz opublikować kod, który próbujesz. – lucuma
Czy mówisz, że chcesz wywołać zdarzenie kliknięcia za pomocą kodu? Dlaczego chcesz to zrobić? – tamakisquare
Próbuję wyświetlić obrazy na liście. Chcę wyświetlać pierwszy obraz domyślnie po załadowaniu strony. Proszę zobaczyć plunker poniżej. W tej chwili robię to za pomocą funkcji timeout jQuery, która nie jest optymalnym rozwiązaniem, ale trzeba to zmienić na angularjs. http://plnkr.co/edit/CVnp9FKcIMr7GoSpfcoX – ayimos