从流星表达式中获取标签内的文本

时间:2016-02-08 09:22:50

标签: meteor

下面的代码假设获取列表的文本insdie,因此如果单击task1,则警报应该说task1,如果单击task2,则警告说text2 ...
但是,当我点击任何一个链接时,没有任何警报显示出来。我一定做错了什么。请求帮助。感谢



Template.mainMenu.helpers({
  menuItems: [
    {menuItem: "task1"},
    {menuItem: "task2"},
    {menuItem: "task3"},
    {menuItem: "task4"},
    {menuItem: "task5"},
    {menuItem: "task6"},
    {menuItem: "task7"}
    ]
});

Template.mainMenu.events({
  'click .menuItem': function(){
    alert(event.target.menuItem.value);
  }
});

<template name="mainMenu">
  <div class="container">
    <div class="row">
      <section class="col-xs-12">
        <div class="list-group">
          {{#each menuItems}}
            <a href="#" class="list-group-item menuItem">
              <img src="/abc.png">
              {{menuItem}} <span class="badge">&#x3e;</span>
            </a>
          {{/each}}
        </div>
      </section>
    </div>
  </div>
</template>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

你还没有定义函数的参数(事件)。 下面的示例将帮助您了解您的代码是否存在未捕获的错误。

Template.mainMenu.events({
  'click .menuItem': function(event){
     try{
       alert(event.target.menuItem.value);
     } catch (e){
       alert(e)
     }
  }
});

更新

data-value={{menuItem}}添加到链接,然后尝试使用jQuery获取此值:

<template name="mainMenu">
  <div class="container">
    <div class="row">
      <section class="col-xs-12">
        <div class="list-group">
          {{#each menuItems}}
            <a href="#" class="list-group-item menuItem" data-value={{menuItem}}>
              <img src="/abc.png">
              {{menuItem}} <span class="badge">&#x3e;</span>
            </a>
          {{/each}}
        </div>
      </section>
    </div>
  </div>
</template>

Template.mainMenu.events({
  'click .menuItem': function(event){
     try{
       alert($(event.currentTarget).data('value'));
     } catch (e){
       alert(e)
     }
  }
});