$ meteor.collection не возвращает коллекцию

0

Следуя шагу 9 " Угловой метеор", я пытаюсь создать директиву "Угловая", в которой используется коллекция "Метеор".

Этот файл находится в корневой папке:

TicTacToeBoards = new Meteor.Collection("tic_tac_toe_boards");

if (Meteor.isServer) {
    Meteor.publish('TicTacToeBoards', function() { return TicTacToeBoards.find(); });
}

Этот файл находится в папке /client:

angular.module('TicTacToe').directive('tictactoegraph', function() {
    return {
        templateUrl: 'client/graph/tictactoegraph.ng.html',
        scope: true,
        controller: function($scope, $meteor, Sigma, TicTacToeClass) {
            $scope.TicTacToeBoards = false;

            $meteor.subscribe('TicTacToeBoards').then(function(subscriptionHandle){
                $scope.TicTacToeBoards = $meteor.collection(TicTacToeBoards);
            });
        },
        link: function($scope, element, attrs) {
            // TODO: Ask SO if there a better way to wait on the subscription....
            $scope.$watch('TicTacToeBoards', function(newValue, oldValue) {
                if ($scope.TicTacToeBoards) {
                    console.log($scope.TicTacToeBoards); // An array of objects.
                    var nextBoards = $scope.TicTacToeBoards.find({ numberOfMoves: 0 });
                }
            });
        }
    }
}

К сожалению, это дает ошибку:

TypeError: $ scope.TicTacToeBoards.find не является функцией

Похоже, что $scope.TicTacToeBoards не является указателем Mongo, но является массивом объектов, возвращаемых TicTacToeBoards.find(). Почему это не курсор?

  • 0
    Иисус Христос! Зачем вам людям нужен угловой в метеоре?
  • 0
    Кажется довольно разумным. Многим людям нравится Angular.
Теги:
meteor
angular-meteor

1 ответ

1
Лучший ответ

Вы правы, $ meteor.collection не возвращает курсор, он возвращает массив типа AngularMeteorCollection, который отличается: http://angular-meteor.com/api/AngularMeteorCollection

Он делает это, потому что мы хотим дать разработчикам Angular регулярный массив, с которым API API будет легко работать.

Это интересная идея добавить функцию find к этому массиву. Хотите ли вы использовать эту функцию для возврата отфильтрованного объекта? Вы можете использовать фильтры для этого, но, возможно, мы можем добавить и этот вариант

Ещё вопросы

Сообщество Overcoder
Наверх
Меню