2017-03-02 6 views
0

したがって、私は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を使用した理由です。私はこれを行うことでこれを修正することができますが、単一のページアプリケーションの目的を無効にします。

    誰もがこれについて良いアイデアを持っていますか?私の髪を引っ張っているが、私は何かが非常に明白でないことを感じている。事前に

    おかげ

    編集:それはいくつかの混乱を引き起こしていたように、私はそれがどのように見えるかを証明するためにスクリーンショットを追加しました:それは全体<体を取り付けることにより、固定ガット enter image description here

    +0

    答えは、r outesは/ profile /:id/posts(例えば)でなければなりません。そして、このグローバルなparamsサービスは削除する必要があります。 –

    +0

    はい、それは本質的に私の問題です。それがng-viewの外にあるとき、hrefにidを渡すにはどうすればよいですか? –

    +0

    他の場所と同じ方法です。 $ routeParamsサービスを使用してIDを取得します。 –

    答えて

    0

    >へそのコントローラの下で、私は$ window.location.hrefを使い、URLからIDを分割してサービスに追加しました。それを私のサブページの外側のhrefに追加することができ、ページにはrouteParamもあります

    関連する問題