Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星模板助手&;文件。书写问题_Javascript_Meteor - Fatal编程技术网

Javascript 流星模板助手&;文件。书写问题

Javascript 流星模板助手&;文件。书写问题,javascript,meteor,Javascript,Meteor,我希望在meteor ionic模板中显示一个简单的javascript日历。我的页面设置正确,但当我在模板帮助器中写入:return document.write(buildCal(…)时,日历会劫持页面,并且不会显示任何其他元素。当我刚刚编写返回buildCal(…)的代码时,它只打印出所有的div,而不是html。有人能告诉我这里缺少什么吗 calendar.js function buildCal(m, y, cM, cH, cDW, cD, brdr) { var mn = [

我希望在meteor ionic模板中显示一个简单的javascript日历。我的页面设置正确,但当我在模板帮助器中写入:return document.write(buildCal(…)时,日历会劫持页面,并且不会显示任何其他元素。当我刚刚编写返回buildCal(…)的代码时,它只打印出所有的div,而不是html。有人能告诉我这里缺少什么吗

calendar.js

function buildCal(m, y, cM, cH, cDW, cD, brdr) {
    var mn = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    var dim = [31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

    var oD = new Date(y, m - 1, 1); //DD replaced line to fix date bug when current day is 31st
    oD.od = oD.getDay() + 1; //DD replaced line to fix date bug when current day is 31st

    var todaydate = new Date() //DD added
    var scanfortoday = (y == todaydate.getFullYear() && m == todaydate.getMonth() + 1) ? todaydate.getDate() : 0 //DD added

    dim[1] = (((oD.getFullYear() % 100 != 0) && (oD.getFullYear() % 4 == 0)) || (oD.getFullYear() % 400 == 0)) ? 29 : 28;
    var t = '<div class="' + cM + '"><table class="' + cM + '" cols="7" cellpadding="0" border="' + brdr + '" cellspacing="0"><tr align="center">';
    t += '<td colspan="7" align="center" class="' + cH + '">' + mn[m - 1] + ' - ' + y + '</td></tr><tr align="center">';
    for (s = 0; s < 7; s++) t += '<td class="' + cDW + '">' + "SMTWTFS".substr(s, 1) + '</td>';
    t += '</tr><tr align="center">';
    for (i = 1; i <= 42; i++) {
        var x = ((i - oD.od >= 0) && (i - oD.od < dim[m - 1])) ? i - oD.od + 1 : '&nbsp;';
        if (x == scanfortoday) //DD added
            x = '<span id="today">' + x + '</span>' //DD added
        t += '<td class="' + cD + '">' + x + '</td>';
        if (((i) % 7 == 0) && (i < 36)) t += '</tr><tr align="center">';
    }
    return t += '</tr></table></div>';
}

Template.calendar.helpers({
    currentcalendar: function() {
        var todaydate = new Date();
        var curmonth = todaydate.getMonth() + 1; //get current month (1-12)
        var curyear = todaydate.getFullYear(); //get current year
        return document.write(buildCal(curmonth, curyear, "main", "month", "daysofweek", "days", 1));
    }
});
函数buildCal(m、y、cM、cH、cDW、cD、brdr){
var mn=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
var oD=新日期(y,m-1,1);//当当前日期为31时,DD替换行以修复日期错误
oD.oD=oD.getDay()+1;//当当前日期为31时,DD替换了行以修复日期错误
var todaydate=new Date()//添加了DD
var scanfortoday=(y==todaydate.getFullYear()&&m==todaydate.getMonth()+1)?todaydate.getDate():0//DD已添加
dim[1]=((oD.getFullYear()%100!=0)和&(oD.getFullYear()%4==0))| |(oD.getFullYear()%400==0))?29:28;
var t='';
t+=''+mn[m-1]+'-'+y+'';
对于(s=0;s<7;s++)t++=“SMTWTFS”;
t+='';
对于(i=1;i=0)和(i-oD.oD
calendar.html

<template name="calendar">
  {{#contentFor "headerButtonLeft"}}
    {{>ionNavBackButton path="index"}}
  {{/contentFor}}

  {{#contentFor "headerTitle"}}
    <h1 class="title">Calendar</h1>
  {{/contentFor}}

  {{#ionView}}
    {{#ionContent}}
      {{currentcalendar}}
    {{/ionContent}}
  {{/ionView}}
</template>

{{#headerButtonLeft的内容}
{{>ionNavBackButton path=“index”}
{{/contentFor}}
{{{#headerTitle的内容}
历法
{{/contentFor}}
{{{ionView}
{{{#离子含量}
{{currentcalendar}}
{{/ionContent}
{{/ionView}

只需返回
buildCal()
而不是
document.write(buildCal())
-您几乎从未使用过
document.write()
在Meteor中,模板为您提供动态内容。

我在发布之前已经这样做了,html代码将直接打印到屏幕上。ie不解释为HTML。在这种情况下,要么返回一个
safeString
,要么使用三个大括号
{{{{currentCalendar}}}
三个把手工作!{{{currentCalendar}}}。谢谢你,米歇尔!