Javascript 页面加载后转到锚定

Javascript 页面加载后转到锚定,javascript,angularjs,Javascript,Angularjs,如何进行完整的页面呈现,然后转到锚定标记? 我在邮件中做一个链接,将你链接到直接页面,然后它将需要转到特定id。我通过Angular获取id,因此我需要在页面尝试转到锚之前加载页面 id="{{idtoanchor}}" 我用angular试过的: app.controller('MainController', function ($scope, $http, $q, $anchorScroll, $location, $timeout) 第一次尝试: $timeout(func

如何进行完整的页面呈现,然后转到锚定标记? 我在邮件中做一个链接,将你链接到直接页面,然后它将需要转到特定id。我通过Angular获取id,因此我需要在页面尝试转到锚之前加载页面

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加载页面时触发,仅在重新加载页面时才会触发