我可以通过单击事件响应列表项中的菜单项吗?

Can I respond to a menu item housed in a List Item via its click event?

要设置会话变量以响应菜单项的选择,列表项单击事件是否应该替换锚标记?

在我的 Meteor 应用程序中,我最初打算使用 Iron Router 路由来响应菜单项选择,如下所示:

<li><a href="{{pathFor route='scheduleOpenExisting'}}">Open Existing</a></li>

...但现在我想我宁愿使用动态模板,并使用会话变量的值来替换正文中的模板(SPA 样式)。那么这是解决问题的方法吗:

html:

<li name="mniOpenExisting" id="mniOpenExisting">Open Existing</li>

Javascript:

"click mniOpenExisting": function (event) {
    return 'openExistingTemplate';
    // In actuality, I will use:
    //Session.set('curTemplate', 'openExistingTemplate');
}

IOW,我可以取消锚标记并响应菜单项的点击吗?

是的,没错,<a> 不是必需的。

"click #mniOpenExisting": function (event) {
  // take action here when element with id 'mniOpenExisting' is clicked
}

I like the coding style set out here,id 和 类 之间的分隔用于表示,数据标签用于事件处理程序。

Iron:router 仍然是 'SPA-style',但是它已经内置的附加功能可能会节省您的时间并使您的代码更清晰,您可以自己重新实现此功能,但这取决于您的应用程序的复杂程度.

另见 Meteor UI Pattern: Keeping App State on the URL。这通常比为同一任务使用会话变量要好得多。