gpt4 book ai didi

javascript - Meteor - 在助手、事件和模板之间传递数据

转载 作者:行者123 更新时间:2023-11-28 06:05:16 26 4
gpt4 key购买 nike

我不知道如何解决我的问题。我是否应该将事件中的变量设置为模板中的空格键语法字段,或者以某种方式将返回的事件数据传递给我的助手。一切都已正确发布和订阅。

问题:我试图做到这一点,以便用户可以单击目录列表(DirectoryList 集合)中任何人员旁边的“添加”按钮,并将用户信息添加到联系人列表集合中。它只是一个消息应用程序,人们可以滚动每个人的目录并将用户添加到他们的联系人列表中。这是我的文件:

模板>directoryList.html

<template name="directoryList">
{{> searchDirectory}}
<ul>
{{#each directoryList}}
<li>
{{firstname}} {{lastname}} &nbsp; <button name="addFriend" id="addFriend">Add</button>
</li>
{{/each}}
</ul>
</template>

帮助程序>directoryList.js

Template.directoryList.helpers({

'directoryList': function(){
return DirectoryList.find({}, {sort: {createdAt: -1}});
}

});

事件>directoryList.js

Template.directoryList.events({

'click .addFriend': function(event){
event.preventDefault();

var currentUserId = Meteor.userId();
var currentContact = DirectoryList.findOne(this._id);
var currentContactFirstname = currentContact.firstname;
var currentContactLastname = currentContact.lastname;
var currentContactEmail = currentContact.email;
console.log("test");

ContactsList.insert({
firstname: currentContactFirstname,
lastname: currentContactLastname,
email: currentContactEmail,
createdBy: currentUserId
});
}
});

它显然在我的事件中给我抛出了 {{}} 语法错误,但我不知道还能做什么或如何让它工作。认为它可能能够从模板继承这些字段,但我想不能?

最佳答案

您的事件处理程序适用于 addButton 类,其中您的按钮没有 addButton 类。您需要在模板中将 id 更改为 class。

<template name="directoryList">
{{> searchDirectory}}
<ul>
{{#each directoryList}}
<li>
{{firstname}} {{lastname}} &nbsp; <button name="addFriend" class="addFriend">Add</button> <!-- CHANGED ID TO CLASS FOR THIS BUTTON -->
</li>
{{/each}}
</ul>
</template>

您可以遵循其他答案以避免不必要的查询以提高性能。

希望有帮助。

关于javascript - Meteor - 在助手、事件和模板之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928633/

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