我正在尝试学习流星,我想从外面添加js,css和html页面。 I have tried to use this package but its not working it seems.我尝试使用以下代码
添加存储在不同位置的html文件Template.hello.helpers({
var row='';
page(){
jQuery.ajax({
url:'Desktop/test.html',
success:function(html){
row=html;
}
});
return row;
}
});
它会产生意外的令牌错误。如果我删除var row,success和return语句,我的应用程序会在不添加外部页面的情况下运行。我还试图用$ .getScript()添加JS文件;但它似乎不适合我。如果任何人都可以帮助我,那将非常有帮助。
答案 0 :(得分:0)
我不确定您打算如何处理此外部HTML,但您的帮助程序格式不正确。您的row
变量会抛出错误,因为它不在您的函数内部。您不能直接在对象内声明变量。此外,您的AJAX调用是异步的,因此返回时仍将行定义为''
。
我认为你需要研究模板html在流星中是如何工作的。您应该将行html放入其自己的模板中,然后使用Spacebars将其包含在hello模板中,如下所示:
你好文件:
<template name='hello'>
<h1>Hello and welcome!</h1>
{{> row }}
</template>
行文件:
<template name='row'>
<div class='row'>This is a row.</div>
</template>
答案 1 :(得分:0)
好的,我会尝试回答您提出的实际问题:如何在模板中包含外部html文件?
两种选择:
如果&#34;外部&#34;文件位于Meteor项目中,也将其作为模板:用<template name="xxx"> ... </template>
包裹,然后只需转到{{> xxx}}
即可插入。
如果文件位于其他地方,并且确实需要通过http调用包含,则将占位符元素<div id="fileGoesHere"></div>
放在您希望的位置,然后在您的帮助程序中执行:< / p>
(见http://docs.meteor.com/api/http.html)
function insertExternalFile() {
HTTP.get( 'http://someurl', ( error, result ) => {
if( error ) {
console.log( error );
return;
}
$('#fileGoesHere').html( result );
});
}