-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、値を代入しようとすると、おそらく ReferenceError が発生します。window.teams

于 2013-04-12T22:35:43.333 に答える