2016-11-03 144 views
0

當我直接轉到代碼時,我的問題得到了最好的解釋。如何從一個控制器獲取參數到另一個控制器?

HTML部分:

<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> 

當我點擊/ profile文件#/ {[post.profileID]}鏈接 - 它需要我的個人資料頁。這裏都很好。

不過,我使用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利用了/ profile文件#/ {[post.profileID]} PARAM的,我用它來顯示什麼我必須展示。

問題:

我能得到的配置文件ID 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鏈接通過帕拉姆,並在mainController使用它,但我怎麼會得到帕拉姆做個鏈接在col-md-3中(就像原來的/ profile#/ {[post.profileID]})?

希望這是有道理的。這一直讓我瘋狂!

感謝

回答

0

所以我做了一些研究,這一點,我剛剛結束了使用的服務。

請參見下面的回答:

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

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

然後,您可以通過服務爲依賴於控制器,如下圖所示:

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

而且你可以調用函數獲取和設置變量。

0

你爲什麼不只是修改部分的HTML頁面,並把列吧。 對於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而沒有參數。我在說清楚(這是一個棘手的問題) –

相關問題