因此,我有一個HTML頁面/ profile#IDGoesHere,它與ng-app綁定。 ng-app有三列(使用Bootstrap),中間使用Angular的ng-view。在ng-view之外提供變量
所以它是這樣的:
/profile文件#IDGoesHere(並在其中):
- 所有活動
- 帖子
- 喜歡
- 不喜歡 等
The hre f鏈接在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中」服務到每一個控制器,因爲我需要訪問配置文件ID,以便做出進一步的呼籲得到了用戶的特定數據。
我的角度路由器看起來是這樣的:
$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'});
});
現在的問題,該鏈接的帖子,喜好,厭惡等不具備的配置文件ID在他們當你去的主要途徑將它們設置, /簡介#IDGoesHere。
這適用於我在頁面上並使用'globalParams'服務繼續導航的情況,但是如果我在其中一個子頁面上刷新頁面,數據將丟失。
注:我不能讓整個頁面重新加載,這就是爲什麼我使用ng-view。我可以通過這樣做來解決這個問題,但它會打敗單頁應用程序的目的。
有沒有人有這個好主意?一直拉着我的頭髮,但覺得我失去了一些非常明顯的東西。
在此先感謝
編輯:因爲這是造成一些混亂,我添加了一個截圖來證明它的樣子:
答案是在問題:r outes應該是/ profile /:id/posts(例如)。這個全球參數服務應該被刪除。 –
是的,但實質上是我的問題。當它在ng-view之外時,我如何將id傳遞給href? –
與其他地方一樣。通過使用$ routeParams服務來獲取ID。 –