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。
我构建了一个包含 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。