当我直接进入代码时,我的问题最好解释。
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]})?
希望这是有道理的。这让我疯了!
由于
答案 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;
}
};
});
您可以调用获取和设置变量的函数。