meteor.js - 将点击的元素的 ID 传递给集合

meteor.js - pass id of element clicked to a collection

我构建了一个包含 3 个元素的页面,每个元素如下所示:

<div class="col-md-4 event-type">
<a href="{{ pathFor 'step2' }}" id="eventchoice" name="eventchoice" value="corporate">
</a>
</div>

我正在尝试使用以下代码将 <a> 元素的值或名称或 ID 传递给集合:

EventsController.events({
    'click #eventchoice' : function(event) {
        console.log(event.target.getAttribute("id"));
        console.log(event.target.getAttribute("name"));
        console.log(event.target.getAttribute("value"));

        var eventchoice = event.target.value;   
        var params = {
            eventchoice: eventchoice 
        }

        //Insert Event
        Meteor.call('addEvent', params);
        FlashMessages.sendSuccess('Event Added');
    }
});

我添加了 console.log 以查看是否可以获得 <a> 元素的 id/name/value,但控制台输出所有这些 'null'。因此,在eventAdd方法中没有传递给集合的东西。

我认为问题不在于 EventsController、addEvent 方法或 Events 集合。有什么想法可以传递这些值吗?

感谢您的帮助!

有几种方法可以解决您的问题,但我认为 "The Meteor Way" 的方法是为每个选择使用单独的模板(或者只使用 #each 循环),如果您这样做的话,您的 "this" 事件代码中将包含您在范围内需要的值,因此您不必为它们依赖 event.target。

我认为你的控制器一定有问题,因为如果你检查 Meteorpad here,它工作正常。 如果您有许多相似的元素,您可能希望使用 class 而不是 id。