我有一个非常简单的 AngularJS 应用程序,其中有两条路线:
#/search
#/results
当我从一条路线导航到另一条路线时,一切都按我的预期进行。获取所需的任何资源并完美显示内容。
问题是,当我从一条路线导航到同一条路线(即 #/results 到 #/results)时,绝对没有任何反应。我知道从浏览器的角度来看什么都没有发生,但我真的希望 AngularJS 重新加载内容。
这一定很容易,但我在这方面画了空白。有人可以帮我解释一下吗?
Thanks,
Jon
当您导航到同一页面时,浏览器忽略它。
Angular.js 与默认行为无关<a href="">
.
你能做的就是创建一个自定义指令 which:
- use
$route.reload()
重新加载当前视图(路线)。
- use
$location.path(newPath)
用于导航到其他视图。
我做了一个example http://jsbin.com/OzUTusO/3/edit:
app.directive('xref',function($route, $location){
return {
link: function(scope, elm,attr){
elm.on('click',function(){
if ( $location.path() === attr.xref ) {
$route.reload();
} else {
scope.$apply(function(){
$location.path(attr.xref);
});
}
});
}
};
});
在你看来,只需创建:
<a xref="/">Home</a>
<a xref="/links">Links</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)