我正在我的Meteor应用程序中编写一个内部包,我似乎无法将包模板公开给应用程序的其余部分。
在我的package.js
文件中,我有以下内容:
api.use(['templating', 'spacebars', 'ui'], 'client');
api.addFiles([
'client/templates/notifications/notifications.html',
'client/templates/notifications/notifications.js',
'notify.js',
'lib/collections/notifications.js'
], 'client');
并在notifications.html
我有
<template name="notifications">
...
</template>
回到应用的其余部分,我有一个layout.html
模板,它只使用{{> notifications}}
之类的模板。但这会导致错误:
Exception from Tracker recompute function: Error: No such template: notifications
at Blaze.View.lookup (http://localhost:3000/packages/blaze.js?efa68f65e67544b5a05509804bf97e2c91ce75eb:2809:15)
at null.<anonymous> (http://localhost:3000/packages/spacebars.js?7f53771c84a2eafac2b561c9796dda0d8af8e7f5:71:23)
at http://localhost:3000/packages/blaze.js?efa68f65e67544b5a05509804bf97e2c91ce75eb:1808:16
at Object.Blaze._withCurrentView (http://localhost:3000/packages/blaze.js?efa68f65e67544b5a05509804bf97e2c91ce75eb:2043:12)
at viewAutorun (http://localhost:3000/packages/blaze.js?efa68f65e67544b5a05509804bf97e2c91ce75eb:1807:18)
at Tracker.Computation._compute (http://localhost:3000/packages/tracker.js?517c8fe8ed6408951a30941e64a5383a7174bcfa:296:36)
at new Tracker.Computation (http://localhost:3000/packages/tracker.js?517c8fe8ed6408951a30941e64a5383a7174bcfa:214:10)
at Object.Tracker.autorun (http://localhost:3000/packages/tracker.js?517c8fe8ed6408951a30941e64a5383a7174bcfa:487:11)
at Blaze.View.autorun (http://localhost:3000/packages/blaze.js?efa68f65e67544b5a05509804bf97e2c91ce75eb:1806:19)
at null.<anonymous> (http://localhost:3000/packages/spacebars.js?7f53771c84a2eafac2b561c9796dda0d8af8e7f5:70:10)
任何帮助都将不胜感激。
答案 0 :(得分:0)
很难说没有repo来重现,但是这里有一个想法:rubaxa:sortable是我写的一个包,它成功地公开了一个模板。试着看看你的不同之处。
顺便说一下,你只需要api.use('模板')。不需要'spacebars'和'ui'来暴露模板。您可能需要其他功能。答案 1 :(得分:0)
由于我还没有评论,我在这里写了@saimeunt的答案:
您是否真的将该软件包添加到了应用程序中?我知道这有点儿 傻,但即使包在应用程序包/ 目录你还需要流星添加它。
进入包目录并运行:
meteor add <YOUR_PACKAGE>
它解决了这个问题。
谢谢@saimeunt!