我正在使用Meteor 1.5,我正在尝试使用这些软件包订阅i18n
集合:
我运行meteor create --full <appname>
以获得完整的脚手架应用。
然后我删除了insecure
和autopublish
个软件包,并添加了aldeed:simple-schema
,audit-argument-checks
和mdg: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)
在服务器控制台中,我可以看到:
我做了一些工作,在上面的check
中包含links.js
语句,但即使我检查了所有字段,该应用也无法订阅该出版物。
非常感谢任何想法或帮助。
如果我可以在某个地方找到更好的示例/回购,那么这些包对我来说不是强制性的。
答案 0 :(得分:0)
我以为你不能把它们混在一起。使用TAP:i18n-db
或TAP:i18n
。
有关示例,请查看git存储库:
https://github.com/TAPevents/tap-i18n
https://github.com/TAPevents/tap-i18n-db
您可以查看几个示例,并决定只使用其中一个软件包。