Przeprowadzka w ramach AngularJS, pojawia się błąd JavaScript na poniższej linii // ERROR
.Nie można ustawić właściwości niezdefiniowanego członka
Dlaczego otrzymuję Cannot set property 'show' of undefined
?
<html ng-app>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js">
</script>
<div ng-controller='DeathrayMenuController'>
<button ng-click='toggleMenu()'>Toggle Menu</button>
<ul ng-show='menuState.show'>
<li ng-click='stun()'>Stun</li>
<li ng-click='disintegrate()'>Disintegrate</li>
<li ng-click='erase()'>Erase from history</li>
</ul>
<div/>
<script>
function DeathrayMenuController($scope) {
$scope.menuState.show = false; // ERROR HERE
$scope.toggleMenu = function() {
$scope.menuState.show = !$scope.menuState.show;
};
}
</script>
</body>
</html>
Właśnie natknąłem tej samej kwestii w trakcie czytania. Niejednoznaczność, której pierwsza odpowiedź nie wyjaśniła w rzeczywistości, polegała na tym, że użyła ona podkreślenia, ale w tym przypadku stworzyła zmienną pod obiektem zasięgu, podczas gdy operator kropki ustawiał niezadeklarowaną zmienną. Ta odpowiedź wydawała się lepiej odzwierciedlać poprawienie tej drugiej sytuacji. Dzięki – tsurantino