2014-03-12 71 views
0

我需要帮助我是meteor Js的新手。我试图通过点击按钮打开警报框使用流星Js,但它不起作用。请帮助我在这里是我的代码下面看到,并建议我。这里给点通过点击Episode信息一些澄清提到在模板中打开一个对话框。使用`meteor Js`的Allert框?

模板:

<template name="newclientinfoform"> 
    <div><a class="clientinfodetails" href="">Episode Info</a></div> 
    </template> 

ClientJs:

Template.newclientinfoform.events({ 
      'click .clientinfodetails' : function CustomAlert(e,t) 
      { 
        if (typeof console !== 'undefined')  
      console.log("You pressed the ClientDetails Row"); 
      e.preventDefault();  
       //alert("Episode Info"); 
      this.render = function(dialog){ 
      var winW = window.innerWidth; 
       var winH = window.innerHeight; 
      var dialogoverlay = document.getElementById('dialogoverlay'); 
       var dialogbox = document.getElementById('dialogbox'); 
      dialogoverlay.style.display = "block"; 
       dialogoverlay.style.height = winH+"px"; 
      dialogbox.style.left = (winW/2) - (550 * .5)+"px"; 
       dialogbox.style.top = "100px"; 
       dialogbox.style.display = "block"; 
      document.getElementById('dialogboxhead').innerHTML = "Alert Box Header"; 
       document.getElementById('dialogboxbody').innerHTML = dialog; 
      document.getElementById('dialogboxfoot').innerHTML = '<button onclick="Alert.ok()" class="btn">OK</button>'; 
      } 
      this.ok = function(){ 
      document.getElementById('dialogbox').style.display = "none"; 
      } 
      }` 
     }); 

CSS:

#dialogbox{ 
display: none; 
position: fixed; 
background: red; 
border-radius:7px; 
width:550px; 
z-index: 10; 
} 
#dialogbox > div{ background:#FFF; margin:8px; } 
#dialogbox > div > #dialogboxhead{ background: #666; font-size:19px; padding:10px; color:#CCC; } 
#dialogbox > div > #dialogboxbody{ background:#333; padding:20px; color:#FFF;fon-family:verdana; } 
#dialogbox > div > #dialogboxfoot{ background: #666; padding:10px; text-align:right; } 
+1

你不应该不直接操纵DOM。相反,将要显示的内容放入模板中的警报中,然后渲染该模板。你为什么不尝试使用[Crater package](http://code.subhog.com/crater#alert)呢?它具有确切的功能。 –

+0

Hubert - 不错的工作,非常愉快的网站!我也会检查客户电话。 –

+0

这是非常有用的谢谢@Hubert OG – Nareshy

回答

0

的反应方式将只是你的对话框/警报的可见性状态存储在Session变量,然后让模板监听该状态并在可见性为真时显示它。例如,在将显示对话框模板:

{{#if showDialog}} 
    <div id="myDialog"><!-- dialog markup here --></div> 
{{/if}} 

<button id="showDialog">show dialog</button> 

而且在模板中的javascript:

Template.myTemplate.showDialog = function() { 
    return Session.get('showDialog'); 
}; 

Template.myTemplate.events({ 
    'click #showDialog': function() { 
    Session.set('showDialog', true); 
    } 
}); 

点击关闭按钮(或模态的背景下)可能Session.set('showDialog',false);