2

2 つのコレクションがArticlesありCategories、それらのドキュメントがこのようなものであるとしましょう

論文

{
   "_id": "blabla",
   "title" : "title",
   "description" : "description",
   "categoryId" : "catId"
}

カテゴリー

{
   "_id": "catId",
   "title" : "category",
   "description" : "description"
}

このようにするためにサブスクリプションを作成したい

{
   "_id": "blabla",
   "title" : "title",
   "description" : "description",
   "category" : {
       "title" : "category",
       "description" : "description"
   }
}

publish-compositeを使用してみましたが、これが私のコードです。 サーバ

Meteor.publishComposite('articles', {
    find: function() {
        return Articles.find({}, { sort: {}, limit: 10 });
    },
    children: [
        {
            find: function(article) {
                return Categories.findOne({ _id: article.categoryId });
            }
        }
    ]
});

クライアントのangularjsコントローラーは

angular.module("dee").controller("ArticlesListCtrl", ['$scope', '$meteor', function($scope, $meteor){
    $scope.articles = $meteor.collection(Articles).subscribe('articles');
}]);

そしてビュー

{{ articles | json }}

問題は、関係なしで記事コレクションのみを印刷することです。

4

2 に答える 2

2

コントローラ:

   angular.module("dee").controller("ArticlesListCtrl", ['$scope', '$meteor', function($scope, $meteor){
        $scope.articles = $scope.$meteorCollection(Articles).subscribe('articles');
        $scope.getCategory = function(article) {
            return $scope.$meteorObject(Categories, article._id);
        };
    }]);

HTML:

<div ng-repeat="article in articles" ng-init="category=getCategory(article)"></div>

私もそれを行うより良い方法を知っていますが、角度では機能せず、誰も気にしていないようですhttps://github.com/Urigo/angular-meteor/issues/720

于 2015-10-08T15:52:24.903 に答える