在流星中使用现有的集合

时间:2016-01-04 16:17:31

标签: angularjs mongodb meteor

我正试图在流星中使用现有的集合:

我试过

SET MONGO_URL="mongodb://localhost:27017/test2" meteor

但那没用。我修改了www.angular-meteor.com

中的示例
  

server.js

if (Meteor.isServer) {
  Meteor.startup(function () {
    var myDatabase = new MongoInternals.RemoteCollectionDriver("mongodb://127.0.0.1:27017/test2");
    MyCollection = new Mongo.Collection("mydata", { _driver: myDatabase }); 
  });
}
  

app.js

if (Meteor.isClient) {
  angular.module('socially', ['angular-meteor']); 
  angular.module('socially').directive('partiesList', function() {
    return {
      restrict: 'E',
      templateUrl: 'parties-list.html',
      controllerAs: 'partiesList',
      controller: function($scope, $reactive) {
        $reactive(this).attach($scope);   
        this.helpers({
          parties: () => {
            return MyCollection.findOne({});
          }
        });
      }
    }
  });
}
  

方-list.html

<ul>
  <li ng-repeat="party in partiesList.parties">
    {{MyCollection.Date}}
    <p>{{MyCollection.name}}</p>
  </li>
</ul>
  

main.html中

<parties-list></parties-list>

任何想法我做错了什么?我在Cannot connect to alternate Mongo DB in Meteor App找到了答案,但仍尝试让<ul>显示某些内容,现在它没有显示任何内容,而且我的页面是空的。

1 个答案:

答案 0 :(得分:1)

我看到一些问题:

      parties: () => {
        return MyCollection.findOne({});
      }

这只会返回一个文档,我假设您需要所有文档,因为您使用ngRepeat迭代parties。这引出了我的下一个问题:

<ul>
  <li ng-repeat="party in partiesList.parties">
    {{MyCollection.Date}}
    <p>{{MyCollection.name}}</p>
  </li>
</ul>

您正在使用ngRepeat迭代聚会,该聚会会在聚会中找到的每个对象重复<li>,并将该值分配给临时对象party。它应该是这样的:

<ul>
  <li ng-repeat="party in partiesList.parties">
    {{party.Date}}
    <p>{{party.name}}</p>
  </li>
</ul>