【问题标题】:Modal popup doesn't show variable with Meteor模态弹出窗口不显示 Meteor 的变量
【发布时间】:2013-07-29 16:17:36
【问题描述】:

我是 Meteor 和 Javascript 的新手,我正在编写一个简单的 Web 应用程序,它会提供已注册消息的列表。您可以单击删除按钮从列表中删除该消息,也可以单击“...”按钮显示有关该消息的额外信息,例如消息文本。该额外信息将显示在模式弹出窗口中。但是,我尝试在模式中显示消息,但它不起作用。

het *.html 文件中的模态模板如下:

<template name="show_message">
 <div class="modal fade" id="messagewindow">
  <div class="modal-header">
   <button type="button" class="close" data-dismiss="modal">&times;</button>
   <h3>Message</h3>
  </div>
  <div class="modal-body">
   {{message}}
  </div>
  <div class="modal-footer">
   <a href="#" class="btn" data-dismiss="modal">Close</a>
  </div>
 <div>
</template>

这是 *.js 文件中填充消息变量的函数 (cfr. {{message}}):

Template.show_message.message = function() {
 p = problems.findOne({_id:Session.get('selected_message')});
 return p.Message;
};

我有一个收藏问题:

problems = new Meteor.Collection("Problems")

一个问题看起来像这样:

problems.insert({Problem : {Message:m, Patient_name:p_name, PID:p_id, Request:req}});

计算所选问题 ID 的函数(cfr.Session.get('selected_problem) 可以,因为删除函数(从列表中删除项目)有效。

我也尝试过返回一个正常的字符串。在这种情况下,字符串会出现在模式弹出窗口中:

Template.show_message.message = function() {
 return "example_message";
};

我在网上搜索过,但找不到任何可以帮助我的东西。这里有一些能看出问题所在的专家吗?

非常感谢。

【问题讨论】:

  • 有一个疯狂的猜测:你使用的模态窗口的方法依赖于 DOM 操作,而 Meteor 的 UI 框架不能很好地处理这些东西。您可以做的是将值存储在某个隐藏节点中,然后在模态窗口显示事件中,将正确的数据从隐藏节点复制到您的库使用的那个。

标签: javascript html meteor


【解决方案1】:

如果问题文档看起来像{Problem : {Message:m, Patient_name:p_name, PID:p_id, Request:req}},您应该在Template.show_message.message 函数中返回p.Problem.Message 而不是p.Message(或使用{Message:m, Patient_name:p_name, PID:p_id, Request:req} 作为问题文档)。

【讨论】:

  • 在这种情况下,我收到以下错误:Uncaught TypeError: Cannot read property 'Problem' of undefined
  • 好的。我第一次尝试此解决方案时犯了一个错误,但您的答案是正确的。我第二次尝试成功。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多