据我了解,imports
的目的文件夹用于存储您导入到 main.js
的所有代码在 client
文件夹。我正在尝试实现 easysearch:autosuggest
我在我的 main.html
中得到了一个使用以下内容的基本示例在客户端文件夹上:
<body>
<div id="render-target"></div>
<div>
{{>searchBox}}
</div>
</body>
<template name="searchBox">
<div class="autosuggest-component">
{{> EasySearch.Autosuggest index=PlayersIndex}}
</div>
</template>
在我的main.js
在我正在导入的客户端文件夹中 App
来 self 的'../imports/ui/App.js'
并渲染它:
Meteor.startup(() => {
render(<App />, document.getElementById('render-target'));
});
所以我尝试将模板粘贴到main.html
中进入render()
里面的功能App.js
在导入文件夹中,但这给了我一个 unexpected token
错误指向{{>searchBox}}
。我是 Meteor/node 的新手,我不太确定我做错了什么,也试图从结构的 Angular 理解我是否正确地做事。如果我必须构建我的应用程序客户端,那么导入文件夹有什么意义?我怎样才能使用 App.js
让它工作和render()
?
最佳答案
这里的问题是您将两个前端库混合在一起。
前端库是我们可以用来帮助我们构建应用程序的用户界面的工具。人们与 Meteor 一起使用的一些流行的有 Blaze、React 和 Angular.js
您使用的语法 {{>searchBox}}
是 Blaze 库用来呈现 Blaze 模板的语法。
但是,在您的 Meteor.startup()
block 中,您正在使用 React 所需的代码。您还表明您一直在关注 React 教程。不幸的是,你不能混合这两者。
我建议你重新开始并follow this tutorial instead 。这与您已经做过的教程完全相同,但它是 Blaze 版本 - 它将与您一直使用的语法一起使用 - {{>searchBox}}
希望有帮助
关于javascript - 从 Meteor 中的导入文件夹渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49179641/