Angular JS ng-show问题

时间:2014-01-10 00:01:59

标签: angularjs

我正在尝试学习Angular JS并在我正在为学习目的而构建的游戏中实现它。我的代码在没有ng-show的情况下工作正常。它适用于ng-show="true""false"。但是,在我设置ng-show="togglesbox.show"的那一刻,它完全破坏了我的代码。

HTML示例:

<div class="player2Wrap" ng-show="player2Box.show">
  <div class="playerName">{{p2name.name}}</div>
  <div class="player">{{p2guess.guess}}</div>
  <div class="playerScore">Score:</div>
  <div class="pScoreNumber">{{p2score.score}}</div>
  <div class="num"><input type="number" ng-model="p2guess.guess" class="numberGuess" min="1"                 max="10"></div>
</div>

对于控制器里面的JS:

$scope.player2Box.show = true;

但是当我用这行代码保存控制器文件时,我的整个页面都被破坏了。如果我注释掉那行代码就可以了。

按照书中的例子,我的代码是正确的。我很困惑,因为根据书中的例子,我的代码看起来很正确。另外,我发现它的相关信息似乎也是正确的。我做错了什么?

1 个答案:

答案 0 :(得分:2)

问题是您在null对象中定义属性。

只需将您的控制器代码更改为:

$scope.player2Box = {};
$scope.player2Box.show = true;

或者,如果您愿意:

$scope.player2Box = {
    show: true
};