繁体   English   中英

AngularJS后退/前进按钮更新模型/范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM