Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angular2中重新加载页面一次_Angular_Typescript - Fatal编程技术网

在angular2中重新加载页面一次

在angular2中重新加载页面一次,angular,typescript,Angular,Typescript,我想在用户访问页面时以angular方式重新加载一次页面,但失败了 这就是我试过的 在主页组件中,我有 export class HomepageComponent implements OnInit { constructor() { } ngOnInit() { location.reload(); } } 页面不断刷新而不停止。如何在init上仅重新加载一次?这将在页面第一次加载时检查url中的查询,并在加载后立即重新加载。这只会发生一次(第一次加载页面时) 在

我想在用户访问页面时以angular方式重新加载一次页面,但失败了

这就是我试过的

在主页组件中,我有

export class HomepageComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    location.reload();
  }

}

页面不断刷新而不停止。如何在init上仅重新加载一次?这将在页面第一次加载时检查url中的查询,并在加载后立即重新加载。这只会发生一次(第一次加载页面时)


在Angular 5上,我捕获加载的查询字符串param,如果存在,停止重新加载
因为Amcharts不会在首次加载时显示,而只在重新加载时显示

ngOnInit() {
    var urlParams = [];
    window.location.search.replace("?", "").split("&").forEach(function (e, i) {
        var p = e.split("=");
        urlParams[p[0]] = p[1];
    });

    // We have all the params now -> you can access it by name
    console.log(urlParams["loaded"]);

    if(urlParams["loaded"]) {}else{

        let win = (window as any);
        win.location.search = '?loaded=1';
        //win.location.reload('?loaded=1');
    }

}

我得到一个简单的解决方案如下

ngOnInit() {
  if (!localStorage.getItem('foo')) { 
    localStorage.setItem('foo', 'no reload') 
    location.reload() 
  } else {
    localStorage.removeItem('foo') 
  }
}

我想知道,当他们来到组件时,为什么你需要重新加载页面?如果你只需要重新加载一次,你需要向组件传递一些东西,可以说它是否已重新加载,我猜应该使用route参数或从查询字符串中读取一些东西?因此,您可以使用一条路径来导航回页面,而不是直接的.reload()。重新加载从未发生,我使用的路径在我的路径中有,因此典型的路径如下:尝试我的更新答案。如果需要,您可以每页调整它。现在,这也会继续重新加载并将#/home?加载到urlOk,这是因为您在url路由中使用了哈希。试试我最新的答案。现在应该没事了,我还在继续装
ngOnInit() {
  if (!localStorage.getItem('foo')) { 
    localStorage.setItem('foo', 'no reload') 
    location.reload() 
  } else {
    localStorage.removeItem('foo') 
  }
}