Javascript 页面加载后转到锚定
如何进行完整的页面呈现,然后转到锚定标记? 我在邮件中做一个链接,将你链接到直接页面,然后它将需要转到特定id。我通过Angular获取id,因此我需要在页面尝试转到锚之前加载页面Javascript 页面加载后转到锚定,javascript,angularjs,Javascript,Angularjs,如何进行完整的页面呈现,然后转到锚定标记? 我在邮件中做一个链接,将你链接到直接页面,然后它将需要转到特定id。我通过Angular获取id,因此我需要在页面尝试转到锚之前加载页面 id="{{idtoanchor}}" 我用angular试过的: app.controller('MainController', function ($scope, $http, $q, $anchorScroll, $location, $timeout) 第一次尝试: $timeout(func
id="{{idtoanchor}}"
我用angular试过的:
app.controller('MainController', function ($scope, $http, $q, $anchorScroll, $location, $timeout)
第一次尝试:
$timeout(function() {
var currentURL = (document.URL);
var result = /[^/]*$/.exec(currentURL)[0];
$anchorScroll('#'+'result');
});
第二:
$timeout(function() {
$location.hash('id');
$anchorScroll();
});
第三,正如在答复中所建议的:
this.$onInit = function () {
var currentURL = (document.URL);
var result = /[^/]*$/.exec(currentURL)[0];
location.hash = "#" + result;
};
我好像一个也没法用
即使我调用$timeout,它也会在ng repeat加载完成之前触发 $timeout不是一个可靠的解决方案。在angular中,DOM在获取所需数据后呈现(返回一个承诺,确保angular从API获取数据)。因此,要在呈现DOM后运行一些代码,您需要使用angular中可用的生命周期挂钩。例如:
function MyCmpController($element) {
var clickHandler = function () {
// do something
};
this.$onInit = function () {
$element.on('click', clickHandler);
//or whatever your logic is.
};
}
我该如何在我的情况下使用它?当我想通过url转到指定的锚定标记时?您可以在
$onInit
hook中编写搜索代码。如果不起作用,它不会在第一次通过www.url.com/something#id加载页面时触发,仅在重新加载页面时才会触发