Javascript 在MongoDB中选择从数据上下文传递的字段

Javascript 在MongoDB中选择从数据上下文传递的字段,javascript,mongodb,meteor,handlebars.js,Javascript,Mongodb,Meteor,Handlebars.js,我的应用程序使用#每个事件生成一个表 每行有4个事件票证(每行代表一个事件),当您单击第一个票证时,将执行以下操作: Template.displayEventsTable.events({ "click .buyTicket1": function () { buyEventTicket(1, this._id); } 这是buyTicket功能: function buyEventTicket (whatNumber, whatEvent) { var buyer

我的应用程序使用
#每个事件生成一个表

每行有4个事件票证(每行代表一个事件),当您单击第一个票证时,将执行以下操作:

Template.displayEventsTable.events({

"click .buyTicket1": function () {

    buyEventTicket(1, this._id);

}
这是
buyTicket
功能:

function buyEventTicket (whatNumber, whatEvent) {

    var buyer = Meteor.user();

    console.log(whatNumber); // works
    console.log(whatEvent); // works
    console.log(whatEvent.eventTicketPrice); // currently shows up as "undefined"

  };
}
我一直在尝试获取eventTicketPrice,它显示为未定义。尽管阅读了《流星》和《车把》的文档,但光线尚未亮起,原因可能是什么

事件ID不会为它自己的一个字段返回正确的值,这似乎不合逻辑

我错过了什么

编辑1

HTML模板

<template name="myEvents">
<h2>Events</h3>
          <table>
            <tr class="first-row">
              <th>Ticket 1</th>
              <th>Ticket 2</th>
              <th>Ticket 3</th>
              <th>Ticket 4</th>
            </tr>
            {{#each events}}
              {{#if eventsTypeA 1}}
                {{> displayEventsTable}}
             {{/if}}
            {{/each}}
          </table>
        </div>
      </div>
</template>
您可以在
{{>displayEventsTable}}
之前使用
{{{{}with this}
,然后使用
{{/with}}
关闭,如下所示:

<template name="myEvents">
<h2>Events</h3>
          <table>
            <tr class="first-row">
              <th>Ticket 1</th>
              <th>Ticket 2</th>
              <th>Ticket 3</th>
              <th>Ticket 4</th>
            </tr>
            {{#each events}}
              {{#if eventsTypeA 1}}
                {{#with this}}
                {{> displayEventsTable}}
                {{/with}}
             {{/if}}
            {{/each}}
          </table>
        </div>
      </div>
</template>

事件
票1
票2
票3
票4
{{{#每个事件}
{{{#如果事件类型为1}}
{{{用这个}}
{{>displayEventsTable}
{{/与}}
{{/if}
{{/每个}}

您只将
此。\u id
传递给您的
buyEventTicket
函数,而不是整个对象。只需传入此
,然后您就可以访问对象的其他属性:

Template.displayEventsTable.events({
  "click .buyTicket1": function () {
    buyEventTicket(1,this);
});

@MichelFloyd我已将HTML模板添加到原始帖子中
console.log(whatEvent)
返回正确的ID:我使用
Events.find()。(事件是MongoDB集合的名称)。我已经在编辑2下添加了对象。你是说
myEvents
helper吗?30是什么
console.log(whatEvent.eventTicketPrice)
需要返回,但它当前仍返回
未定义的
。创建事件时,它设置了值为30的
eventTicketPrice
字段-我已经检查了高音,没有输入错误。带有
每个
中是多余的-每个
已经将数据上下文设置为单个事件对象。@MichelFloyd您使用了{eventTicketPrice}要将模板中的数据显示到数据框中,请使用此解决方案,谢谢。我有一个错误的印象,如果你只有一个对象的ID,你仍然可以在任何地方访问它的字段,但我没有意识到你必须通过整个过程。
<template name="myEvents">
<h2>Events</h3>
          <table>
            <tr class="first-row">
              <th>Ticket 1</th>
              <th>Ticket 2</th>
              <th>Ticket 3</th>
              <th>Ticket 4</th>
            </tr>
            {{#each events}}
              {{#if eventsTypeA 1}}
                {{#with this}}
                {{> displayEventsTable}}
                {{/with}}
             {{/if}}
            {{/each}}
          </table>
        </div>
      </div>
</template>
Template.displayEventsTable.events({
  "click .buyTicket1": function () {
    buyEventTicket(1,this);
});