Javascript 由于某种原因,AngularJS上的页面会自动刷新
在我的应用程序中,每当我单击通过$routeprovider加载不同部分的链接时,页面就会定期刷新。然后,除了刷新外,它还会将我带回到默认部分,即,我必须再次单击链接才能到达我想要去的地方。我根本没有使用任何刷新页面的方法;为什么会发生这种情况 另外,有趣的是,当我点击任何非$routeprovider链接时,这种情况不会发生。以下是我的routeProvider:Javascript 由于某种原因,AngularJS上的页面会自动刷新,javascript,html,angularjs,Javascript,Html,Angularjs,在我的应用程序中,每当我单击通过$routeprovider加载不同部分的链接时,页面就会定期刷新。然后,除了刷新外,它还会将我带回到默认部分,即,我必须再次单击链接才能到达我想要去的地方。我根本没有使用任何刷新页面的方法;为什么会发生这种情况 另外,有趣的是,当我点击任何非$routeprovider链接时,这种情况不会发生。以下是我的routeProvider: .config(['$routeProvider', '$locationProvider', function($rou
.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider.
when('/', {
templateUrl: "index.html"
}).
when('/profile/:id', {
templateUrl: "profile.html",
controller: 'UsersController as profiledUser'
}).
when('/gift/:id', {
templateUrl: "gift.html",
controller: 'GiftsController as profiledGift'
}).
when('/users-form', {
templateUrl: "users-form.html",
controller: 'UsersController as newUser'
}).
when('/login-form', {
templateUrl: "login-form.html",
controller: 'UsersController as loginUser'
}).
when('/gifts-form', {
templateUrl: "gift-form.html",
controller: 'GiftsController as newGift'
}).
when('/about', {
templateUrl: "about.html"
}).
otherwise({
redirectTo: '/'
});
以下是其中一个链接的示例,当在Chrome的开发工具中检查时,该链接链接指向当前登录的用户的个人资料:
<a href="#profile/5" data-ng-click="template=1" style="color: white;">Profile</a>
这是代码中的相同链接,它是导航栏的一部分:
<li><a href="#profile/{{id}}" data-ng-click="template=1" style="color: white;">Profile</a></li>
再次重申,偶尔单击上述任何链接都会重定向到。否则会刷新页面。我无法可靠地重现这种行为,因为它似乎是随机发生的;奇怪的是,即使我从配置中删除了.Others路由,也会发生这种情况。看起来您试图通过单击标记一次完成两件事,但只发生了一件事: 默认操作,位于href中,表示load UsersController+profile view和 在当前上下文中设置template=1 即使出现template=1,一旦切换到UsersController,您也不再有权访问此设置 试着这样做:
<a href="#/profile/{{id}}/{{template}}">Profile</a>
或者,对模板=1使用$rootScope或其他一些全局上下文,这样只要您注入了依赖项,它就始终可用于任何controller+视图。什么浏览器和版本?浏览器是Chrome,Angular是v1.3.1。您能提供更多信息吗?可能会显示违规路由是如何设置的,以及链接html在源html和在chrome中检查时的外观。我想知道将链接更改为是否会有所不同?不幸的是,ng href仍然存在此问题。
.when('/profile/:id/:template', {
controller: 'UsersController as profiledUser',
templateUrl: 'profile.html'
})