-1

因此,在我的 Jade 模板上,我通过包含名称数组的路径向它传递了一个变量。

这是该模板中的 JavaScript:

script(type='text/javascript')
  window.teams = !{JSON.stringify(teams)};

teams包含我谈到的数组。这是JavaScript:

$(function () {
  // Array of team names
  var teamNames = [];
  for(var i = 0; i < teams.length; i++) {
    teamNames.push(teams[i].name);
  }

  var bracketTeams = [];

  var teamMatches = new Array();
  for(var i=0;i<teamNames.length; i+=2)
  {       
    teamMatches.push([teamNames[i],teamNames[i+1]]);
  }

  var bracketData = {
    teams : teamMatches,
    results : [[
        [ [1, 0], [1, 0] ],
        [ [1, 0], [1, 0] ]
      ]]
  }
    $('#tournamentBrackets').bracket({
        init: bracketData
    });
});

现在由于某种原因,当我添加此 JavaScript 代码时,系统其余部分的功能完全中断。如果我把它注释掉,那么系统的其余部分就可以正常工作,如果我把它留在里面,按钮什么也不做,链接无处可去,数据不会添加(尽管数据已加载,即列出了团队数据库)。如果我加载页面,然后取消注释 JS,页面会正常工作。

有什么想法在这段代码中破坏了我的系统吗?我刚刚尝试将 window.teams 重命名为 window.testName ,但它仍然坏了。真的很迷茫。

编辑:生成的 HTML

http://pastebin.com/VdkEfANb

4

1 回答 1

1

在 Node.js 中,该window对象可能不存在。Node.js 具有与浏览器不同的全局对象。在 Node.js 中,全局对象实际上命名为global. 除非您专门设置了一个名为 的对象,否则window当您尝试将值分配给window.teams

于 2013-04-12T22:35:43.333 回答