【发布时间】:2015-11-18 06:39:57
【问题描述】:
我正在构建一个从 ebay 列表中提取数据的订单。它有一个部分,您可以在其中添加行项目,并且您可以使用按钮添加另一个项目。它添加了另一个模板实例(使用 lineItems 帮助器迭代)这工作正常。
因此,在该模板中,我需要它使用 eBay api 进行搜索(我已经设置了一个 Meteor 方法来执行此操作,我不想包含它,因为它包含敏感信息)。您将 eBay 列表的 ID 输入到输入中,它会自动填写行项目的信息,例如列表的标题。
那么如何通过我的 getEbayItemTitle 助手传递参数(我想从输入值中获取的列表 ID)?
这是我的辅助函数:
getEbayItemTitle: function (id) {
Meteor.call('getEbayItemData', id, function(error, result) {
Session.set('ebayFetch', JSON.parse(result.content));
});
var item = Session.get('ebayFetch');
return item.Item.Title;
}
在我的模板中: (我用 LISTING ID 代替了我的实际列表 ID)
{{#each LineItems}}
<!--some HTML -->
<input type="text" class="order-ebay-id" placeholder="Ebay Id">
<!--some HTML -->
{{getEbayItemTitle 'LISTING ID'}}
<!-- some HTML -->
{{/each}}
我以前通过一种完全不同的方式对其进行编码来实现这一点...我将每个行项目附加到 jQuery 作为一个 div。但问题是,您需要输入 ebay 列表 ID 两次才能最终显示标题。 所以我想我需要使用模板和辅助函数,以便数据是反应性的。
我真的希望这是有道理的。
【问题讨论】:
-
不完全是重复的,但我强烈建议阅读this question 的答案。
-
@DavidWeldon 谢谢!我正在使用我接受的答案,但该信息非常有用
标签: javascript meteor spacebars