我正在尝试学习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;
但是当我用这行代码保存控制器文件时,我的整个页面都被破坏了。如果我注释掉那行代码就可以了。
按照书中的例子,我的代码是正确的。我很困惑,因为根据书中的例子,我的代码看起来很正确。另外,我发现它的相关信息似乎也是正确的。我做错了什么?
答案 0 :(得分:2)
问题是您在null对象中定义属性。
只需将您的控制器代码更改为:
$scope.player2Box = {};
$scope.player2Box.show = true;
或者,如果您愿意:
$scope.player2Box = {
show: true
};