如何从一个控制器到另一个控制器?

时间:2016-11-03 16:16:39

标签: angularjs

当我直接进入代码时,我的问题最好解释。

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]}参数,我用它来显示我必须显示的内容。

问题:

我可以在我的角度控制器中获取profileID参数但是一旦我得到它,我怎么能将它传递给其他控制器?

我的控制器如下所示:

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中使用它,但是如何让param成为col-md-3中的链接(就像原始/ profile一样# / {[post.profileID]})?

希望这是有道理的。这让我疯了!

由于

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

所以我对此做了一些研究,最后我才开始使用服务。

请参阅下面的答案:

Sharedpreference

然后将服务传递给控制器​​中的依赖项,如下所示:

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

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

您可以调用获取和设置变量的函数。