我有一个非常简单的 AngularJS 应用程序,其中有两条路线:
#/search
#/results
当我从一条路线导航到另一条路线时,一切都如我所料。获取所需的任何资源并完美显示内容。
问题是当我从一条路线导航到同一路线时(即,#/results 到#/results)绝对没有任何反应。我从浏览器的 Angular 理解没有发生任何事情,但我真的希望 AngularJS 重新加载内容。
这一定很简单,但我在这上面画了空白。有人可以帮我解释一下吗?
谢谢,
乔恩
最佳答案
当您导航到同一页面时,浏览器会忽略它。
Angular.js 与 <a href="">
的默认行为无关.
您可以做的是创建一个自定义指令,它:
- 使用
$route.reload()
重新加载当前 View (路线)。 - 使用
$location.path(newPath)
用于导航到其他 View 。
我做了一个 example :
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>
关于javascript - AngularJS 路由 Controller 不重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125914/