gpt4 book ai didi

javascript - 在带有 Iron Router 的 Meteor 包中包含 HTML 模板

转载 作者:行者123 更新时间:2023-11-28 00:11:14 25 4
gpt4 key购买 nike

我试图在我自己的演示 Meteor 应用程序中模仿 Telescope 应用程序结构。他们的设置方式意味着所有代码都位于子包中,包括 HTML 模板等。

我有 Meteor 应用程序设置,因此我有以下内容:

  • 客户端
    • layout.html(包含 head 标签,用作页面的“基础”)
  • 服务器

    • index.js(包含 Iron 路由器的配置,例如默认的 layoutTemplate)
    • myapp-ui
      • 客户端
        • 仪表板.html
      • myapp-ui.js
      • package.js

在我的包中的 package.js 文件内,尝试加载 HTML 模板时有以下代码:

Package.describe({
name: 'myapp-ui',
version: '0.0.1',
documentation: null
});

Package.onUse(function (api) {
api.versionsFrom('1.1.0.2');

api.use([
'iron:router'
]);

api.addFiles([
'client/dashboard.html'
]);

api.addFiles('myapp-ui.js');
});

myapp-ui.js 文件包含尝试将 dashboard.html 代码获取到我的应用程序中的代码:

Router.route('/', function() {
this.render('Dashboard');
});

dashboard.html 模板很简单:

<template name="dashboard">
<p>Hello, world!</p>
</template>

问题是,当访问应该加载仪表板的localhost:3000页面时,我收到错误:

Couldn't find a template named "Dashboard" or "dashboard". Are you sure you defined it?

我有点困惑,因为我显然有一个模板 HTML 文件加载了名为“dashboard”的模板标签,并且该文件是通过 api.addFiles 加载到我的包中的。我是否需要使用其他包来加载包内的 HTML,还是我的代码不正确?

最佳答案

坚持使用大写或小写语法作为模板名称,目前您同时拥有 <template name="dashboard">this.render('Dashboard'); .

您实际上是否使用meteor add myapp-ui将包添加到应用程序中?

尝试依赖templating在客户端打包并加载client/dashboard.htm仅在客户端上:

api.use("templating", "client");
[...]
api.addFiles("client/dashboard.html", "client");

关于javascript - 在带有 Iron Router 的 Meteor 包中包含 HTML 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com