したがって、私はHTMLページ/ profile#IDGoesを持っています。これはng-appと結びついています。 ng-appには3つのカラム(ブートストラップ付き)があり、その中でAngularのng-viewを利用しています。ng-view以外の変数を提供する
だから、このようなものです:
/プロファイル#IDGoesHere(およびそれ以内):
- すべての活動
- 嫌い など
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;
}
};
});
私は、ユーザーのために特定のデータを取得するために更なる呼び出しを行うために、profileIDをアクセスする必要があるとして、私は、各コントローラに「globalParams」サービスを渡します。
マイ角度ルータは次のようになります、今
$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を持っていません。 /プロフィール#IDGこちらはこちら。
これは、ページ上にあり、 'globalParams'サービスを使用してナビゲートしているときに機能しますが、サブページの1つにあったときにページを更新するとデータが失われます。
注:ページ全体をリロードすることはできません。これは、ng-viewを使用した理由です。私はこれを行うことでこれを修正することができますが、単一のページアプリケーションの目的を無効にします。
誰もがこれについて良いアイデアを持っていますか?私の髪を引っ張っているが、私は何かが非常に明白でないことを感じている。事前に
おかげ
編集:それはいくつかの混乱を引き起こしていたように、私はそれがどのように見えるかを証明するためにスクリーンショットを追加しました:それは全体<体を取り付けることにより、固定ガット
答えは、r outesは/ profile /:id/posts(例えば)でなければなりません。そして、このグローバルなparamsサービスは削除する必要があります。 –
はい、それは本質的に私の問題です。それがng-viewの外にあるとき、hrefにidを渡すにはどうすればよいですか? –
他の場所と同じ方法です。 $ routeParamsサービスを使用してIDを取得します。 –