Meteor无法使用TAPi18n.subscribe订阅TAPi18n.Collection

时间:2017-06-24 16:01:03

标签: mongodb meteor internationalization

我正在使用Meteor 1.5,我正在尝试使用这些软件包订阅i18n集合:

  • TAP:I18N
  • TAP:I18N-DB

我运行meteor create --full <appname>以获得完整的脚手架应用。

然后我删除了insecureautopublish个软件包,并添加了aldeed:simple-schemaaudit-argument-checksmdg:validated-method作为推荐的安全漏洞。

// imports/startup/server/fixtures.js

import { Meteor } from 'meteor/meteor';
import { Links } from '../../api/links/links.js';

Meteor.startup(() => {
  // if the Links collection is empty
  if (Links.find().count() === 0) {
    const data = [
      {
        title: 'Do the Tutorial',
        url: 'https://www.meteor.com/try',
        i18n: {
          'fr': {
            title: 'FR Do the Tutorial',
          },
        },
        createdAt: new Date(),
      },
      {
        ...
      },
    ];

    data.forEach(link => Links.insert(link));
  }
});
// imports/api/links/links.js

import { Mongo } from 'meteor/mongo';

export const Links = new TAPi18n.Collection('links');
// imports/api/links/server/publications.js

import { Meteor } from 'meteor/meteor';
import { TAPi18n } from 'meteor/tap:i18n';
import { Links } from '../links.js';

TAPi18n.publish('links.all', function () {
  return Links.i18nFind();
});
// client/main.js

import { TAPi18n } from 'meteor/tap:i18n';
import '/imports/startup/client';
import '/imports/startup/both';

Meteor.startup(function() {
    TAPi18n.setLanguage('en');
});
// imports/ui/components/info/info.js

import { Links } from '/imports/api/links/links.js';
import { Meteor } from 'meteor/meteor';
import { TAPi18n } from 'meteor/tap:i18n';
import './info.html';

Template.info.onCreated(function () {
  TAPi18n.subscribe('links.all');
});

Template.info.helpers({
  links() {
    return Links.find({});
  },
});

...

在使用Meteor Dev-Tool的Chrome控制台中,我可以看到:

Chrome Meteor Dev-Tool screenshot

基本上它说unsubscribed from links.all (unrecognized subscription)

在服务器控制台中,我可以看到:

Meteor Server Console

我做了一些工作,在上面的check中包含links.js语句,但即使我检查了所有字段,该应用也无法订阅该出版物。

非常感谢任何想法或帮助。

如果我可以在某个地方找到更好的示例/回购,那么这些包对我来说不是强制性的。

1 个答案:

答案 0 :(得分:0)

我以为你不能把它们混在一起。使用TAP:i18n-dbTAP:i18n

有关示例,请查看git存储库:

https://github.com/TAPevents/tap-i18n

https://github.com/TAPevents/tap-i18n-db

您可以查看几个示例,并决定只使用其中一个软件包。