[英]AngularJS back/forward button update model/scope
我在AngularJS和URLS上遇到问题。 当我在浏览器中按“后退/前进”按钮时,我希望我的模型进行相应的更新。 从此页面可以看到: http : //www.networkwestmidlands.com/whats-on/#params?when=Today&what=Events&where=birmingham
它从url(一个我设置为x模型默认值的getter函数,如果有的话)中提取变量,并将其设置为每个搜索过滤器的模型。 如果您开始更新过滤器,则URL也会更新(这会在ng-change上调用一个函数),刷新或共享url将使用该URL中预定义的所有模型加载该页面。
我遇到的麻烦是按下后退/前进按钮时视图/控制器不会更新/刷新。
我如何在控制器的页面加载中定义模型的示例:
vm.type = getFromURL('what=') || 'Events';
function getFromURL(filterName){
var url = $location.url();
// if there is already a hash in the url
if(url && url.indexOf('params?') >= 0){
// If the search param already exists
if(url.indexOf(filterName) >= 0){
// Split url at already existing search param
var searchParams = url.split(filterName)[1];
// if there is still an '&' in the url do something
if(searchParams.indexOf('&') >= 0){
// split at the '&' and get rid of anything after it(other search params)
var singledParam = searchParams.split('&')[0];
return singledParam;
}else{
return searchParams;
}
// If the suggested search param doesn't exist
}
}
}
我最终使用: $location.url(url).replace();
根据需要工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.