如何进行整页渲染然后转到锚标记? 我正在邮件中进行链接,将您链接到直接页面,然后需要转到特定的ID。我通过Angular获取id,所以我需要在尝试转到锚点之前加载页面。
id="{{idtoanchor}}"
我用角度尝试了什么:
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完成加载之前触发。
答案 0 :(得分:0)
$ timeout不是一个可靠的解决方案。在角度DOM中,在获取所需数据之后呈现(返回一个promise,确保angular从API获取数据)。因此,在呈现DOM之后运行一些代码,您需要使用角度可用的生命周期钩子。例如:
function MyCmpController($element) {
var clickHandler = function () {
// do something
};
this.$onInit = function () {
$element.on('click', clickHandler);
//or whatever your logic is.
};
}