情况:
- Controller1处理与第1页上的帖子相关的数据。
- Controller2处理与上面帖子的评论相关的数据,第2页。
{{comments.length}}
适用于第2页,其中包含“Controller2”但在第1页中无效。我阅读了有关共享服务的内容,并想知道如何在这种情况下插入服务?
我不是试图让两个控制器反映一个相同的对象名称,它将反映2个不同控制器下的2个不同值。我希望在第1页中使{{comments.length}}可行。
Controller1
app.controller('PostsCtrl', function($scope, Post, Auth) { //insert Shared here
$scope.posts = Post.all;
$scope.user = Auth.user;
控制器2
app.controller('PostViewCtrl', function($scope, Post, Auth, $stateParams) { //insert Shared here
$scope.post = Post.get($stateParams.postId);
$scope.comments = Post.comments($stateParams.postId);
共享服务
app.service('Shared', function() {
return { //notsure what to insert here since theres no data field
};
});
我注意到在SO上共享2个控制器的服务解决方案:
AngularJS: How can I pass variables between controllers?
这是否是最好的解决方案,还有其他更简单的方法吗?