2016-11-03 14 views
0

私の質問は、私がコードに直接行くときに最もよく説明されています。1つのコントローラから別のコントローラにparamを取得するには?

HTML部分:私は/プロファイル#/ {[post.profileID]}のリンクをクリックすると

<div class="panel panel-default post" ng-repeat="post in posts"> 
    <div class="panel-body"> 
    <div class="row"> 
     <div class="col-sm-2"> 
     <a class="post-avatar thumbnail" href="/profile#/{[ post.profileID ]}"> 
      <div class="text-center">{[ user.fullname ]}</div> 
     </a> 
     </div> 
    </div> 
</div> 

が - それはプロフィールページに私を取ります。すべてここで良い。

しかし、私はngViewを使用していますので、私はこのようにそれを分離している:

<div class="col-md-3"> 
    <div>Some HTML stuff</div> 
</div> 

<div class="col-md-6"> 
    <div ng-view></div> 
</div> 

<div class="col-md-3"> 
    <div>Some HTML stuff</div> 
</div> 

マイngViewは/プロファイル#/ {[post.profileID]}のparamを使用すると、私は何でも表示するためにそれを使用します私は表示する必要があります。

問題:

私はどのように私は他のコントローラにそれを渡すことができるようになります、私の角度コントローラではなく、私はそれを得ればprofileIDをするのparamを得ることができますか?

私のコントローラは、以下のようになります。あなたが見ることができるように

var profileApp = angular.module('profileApp', ['ngRoute']); 

profileApp.config(function($routeProvider) { 

$routeProvider 
.when('/:id', { 
    templateUrl : 'partial/profile/feed.html', 
    controller : 'mainController' 
}) 

.when('/posts:id', { 
    templateUrl : 'partial/profile/posts.html', 
    controller : 'postsController' 
}); 

}); 

profileApp.controller('mainController', ['$scope', '$http', '$routeParams', function($scope, $routeParams){ 

console.log($routeParams.id); 

}]); 

profileApp.controller('postsController', ['$scope', '$routeParams', function($scope, $routeParams){ 

console.log($routeParams.id); 

}]); 

が、私はHTMLのリンクから渡されたのparamをゲットし、メインコントローラでそれを使用しますが、どのように私はparamはリンクであることを取得しますcol-md-3(元の/ profile#/ {[post.profileID]}のように)?

希望はこれが理にかなっています。それは私をナッツを運転している!あなたは自分の一部のHTMLページを編集し、それに列を入れていないのはなぜ

おかげ

答えて

0

は、だから私はこの中にいくつかの研究を行なったし、私はサービスを使用して終了しました。

答えは、以下を参照してください:

profileApp.controller('mainController', ['$scope', 'globalParams', function($scope, globalParams){ 
    //some code 
}; 

そして、あなたが取得および設定するための関数を呼び出すことができます:あなたはその後、以下のように、コントローラに依存関係にサービスを渡す

profileApp.service('globalParams', function() { 
var profileID = ''; 

return { 
    getProfileID: function() { 
     return profileID; 
    }, 
    setProfileID: function(value) { 
     profileID = value; 
     } 
    }; 
}); 

変数。

0

partial/profile/feed.html用 :

<div> 
    <div class="col-md-6"> 
    <div>feed stuff</div> 
    </div> 

    <div class="col-md-3"> 
    </div> 
</div> 

そしてpartial/profile/posts.htmlは次のようになります。

<div> 
    <div class="col-md-6"> 

    </div> 

    <div class="col-md-3"> 
    <div>posts stuff</div> 
    </div> 
</div> 
+0

これは私がやっていることです。 ".when( '/ posts:id'、{"は外部( "col-md-3")から来ますが、問題はパラメータを持たずにhref URLを構築できないということです。私は自分自身を明確にしています(それは難しい問題です) –

関連する問題