我有一个场景,用户正在编辑页面上的详细信息但不小心从标题菜单中点击了其他页面链接。现在我想要做的是在重定向之前保存当前页面值。我正在使用Angular 4.有任何聪明的方法吗?
答案 0 :(得分:1)
您可以使用CanDeactivate Route Guard。 请参阅链接 - https://angular.io/api/router/CanDeactivate
答案 1 :(得分:-1)
看看Localstorage。它是一个很好的插件,可以使用Local Storage API中的浏览器构建来控制本地存储。
有关Local Storage API的更多信息,请阅读the docs
此外,您可以使用onDestroy
(docs)来存储当前存在的值,并使用onInit
来加载变量; - )
答案 2 :(得分:-1)
注意:如果您想在导航前警告用户,可以使用@Basavaraj Bhusani中提到的 private void button4_Click(object sender, EventArgs e)
{
foreach (var row in listBox1.Items)
{
if(sIMSDataSet.Stock.Rows.Contains(row))
{
//update the checked out column to true and the who it
//is checked out to, to the logged in user.
}
}
}
后卫,回答。
Here You can find a good Example of Deactivate Guard
如果您想在某个地方存储数据并希望在本地应用,则可以使用canDeactivate
。
您可以在localStorage
,
如果您要从navigate
home component
app component
设置数据: class AppComponent implements OnInit {
constructor(private router: Router) {}
ngOnInit() {
// here you can get the data
localStorage.getItem('form')
}
goHome(formData) {
localStorage.setItem('form', formData)
this.router.navigate(['home']);
}
}
设置数据
获取数据: localStorage.setItem('form', formData)
获取数据
您可以在返回localStorage.getItem('form')
时保存form Data
和retrieve