所以,我有一个HTML页面,/ profile#IDGoesHere,这是一个ng-app。 ng-app有三列(使用Bootstrap),其中间使用Angular的视图。
所以它是这样的:
/ profile#IDGoesHere(及其中):
href链接在ng-view之外的HTML页面上设置,所以当我进入/ profile#IDGoesHere页面时,我使用服务将userID设置为变量。如下所示:
profileApp.service('globalParams', function() {
var profileID = '';
var user = {};
return {
getProfileID: function() {
return profileID;
},
setProfileID: function(value) {
profileID = value;
}
};
});
我通过了' globalParams'服务到每个控制器,因为我需要访问profileID,以进一步调用以获取用户的特定数据。
My Angular Router看起来像这样:
$routeProvider
.when('/profile:id', {
templateUrl : 'partial/profile/feed.html',
controller : 'mainController',
resolve:{
myData: ['$http', function($http){
return $http.get('/session');
}]
}
})
.when('/posts', {templateUrl: 'partial/profile/posts.html', controller: 'postsController'})
.when('/agreed', {templateUrl: 'partial/profile/likes.html', controller: 'likesController'})
.when('/disagreed', {templateUrl: 'partial/profile/dislikes.html', controller: 'dislikesController'})
.when('/comments', {templateUrl: 'partial/profile/comments.html', controller: 'commentsController'});
});
现在问题是,帖子,喜欢,不喜欢的链接中没有profileID,因为它们是在你去主路线时设置的,/ profile#IDGoesHere。
当我在页面上并使用' globalParams'进行导航时,此功能正常工作。但是,如果我在其中一个子页面上刷新页面时,数据就会丢失。
注意:我无法重新加载整个页面,这就是我使用ng-view的原因。我可以通过这样做来解决这个问题,但它会破坏单页应用程序的目的。
有人对此有好主意吗?一直在拉我的头发,但觉得我错过了一些非常明显的东西。
提前致谢
答案 0 :(得分:0)
通过附加整个<身体>在父控制器和控制器下,我使用了$ window.location.href并从URL中拆分了ID,然后将其添加到服务中,然后我可以将其添加到我的子页面的外部href中,基本上是子页面也有routeParam