我是流星的新手,我正在努力使用MSXML2.DomDocument
进行大火。
我尝试了this answer on stackoverflow,但我的要求略有不同。
我有一个json对象数组:
Dim fs,t,x
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set t=fs.OpenTextFile("path_to_xml_file",1,false)
x=t.ReadAll
t.close
Response.Write("The text in the file is: " & x)
如何在流星项目中使用blaze(特别是使用#each迭代数组)显示每个对象的firstName。
我尝试了很多不同的方法,使用多种辅助方法,但我无法实现。如果有人可以请求帮助。
另外,如果不可能,请告诉替代方案以实现相同目标。
数据来自API调用,数据格式是json对象,但是存储为Session变量(这样我将在helper方法中使用{来自{} {1}})。
答案 0 :(得分:2)
这将取决于您的数据来自何处。在我的示例中,您可以使用对象的源替换我的硬编码变量。如果你添加它来自哪里,我可以修改我的解决方案。
基本上,您只需使用辅助函数返回JSON对象内的对象数组。在那里,您可以在#each
块中调用帮助程序,并直接使用firstName
{{firstName}}
<强>模板强>
<template name="yourTemplateName">
{{#each accounting}}
{{firstName}}
{{/each}}
</template>
<强>辅助强>
Template.yourTemplateName.helpers({
accounting: function () {
var data = Session.get('apiResponse');
//You return the array of objects, which can then be iterated with each
if (!_.isEmpty(data)){
return data.accounting;
} else {
return []
}
}
});
答案 1 :(得分:1)
我假设API响应位于名为apiResponse的会话变量中。
按如下方式定义帮助器:
Template.body.helpers({
response: function () {
return Session.get('apiResponse');
}
});
在模板中,使用#with
模板标记调用响应帮助程序以设置数据上下文,并使用#each
模板标记在此标记内迭代记帐数组。
<body>
{{#with response}}
{{#each accounting}}
<p>{{firstName}} {{lastName}} is {{age}} years old.</p>
{{/each}}
{{/with}}
</body>
您将在浏览器窗口中看到此内容 -
John Doe is 23 years old.
Mary Smith is 32 years old.
Mike Nolan is 21 years old.