Wie würde man die gesamte Seite rendern und dann zum Anker-Tag gehen? Ich mache einen Link in einer E-Mail, die Sie mit der direkten Seite verbindet, und dann muss es auf die spezifische ID gehen. Ich bekomme die ID über Angular, also muss ich die Seite laden, bevor sie versucht, zum Anker zu gehen.gehen Sie nach dem Laden der Seite zu verankern
id="{{idtoanchor}}"
was ive versucht, mit Winkel:
app.controller('MainController', function ($scope, $http, $q, $anchorScroll, $location, $timeout)
Erster Versuch:
$timeout(function() {
var currentURL = (document.URL);
var result = /[^/]*$/.exec(currentURL)[0];
$anchorScroll('#'+'result');
});
Zweitens:
$timeout(function() {
$location.hash('id');
$anchorScroll();
});
Dritten wie in Antwort vorgeschlagen:
this.$onInit = function() {
var currentURL = (document.URL);
var result = /[^/]*$/.exec(currentURL)[0];
location.hash = "#" + result;
};
Ich kann nicht scheinen, von diesen zu arbeiten Selbst wenn ich das $ timeout anrufe, feuert es, bevor die ng-Wiederholung getan wird, lade.
Wie würde ich das in meiner Situation verwenden? Wann möchte ich über die URL zum angegebenen Anchor-Tag gehen? –
Sie können den Code zum Scrollen innerhalb des '$ onInit'-Hooks schreiben. – souravb
funktioniert nicht, es wird nicht beim ersten Mal ausgelöst, wenn die Seite über www.url.com/something#id geladen wird. Wird nur ausgelöst, wenn die Seite neu geladen wird. –