2016-11-03 145 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而没有参数。我在说清楚(这是一个棘手的问题) –

相关问题