2015-01-08 6 views
0

이 코드가 오류를 범하는 이유는 무엇입니까? 나는각도로 표시 할 때

<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/> 

function DeathrayMenuController($scope) { 
$scope.menuState.show = false; 
$scope.toggleMenu = function() { 
$scope.menuState.show = !$scope.menuState.show; 
}; 
// death ray functions left as exercise to reader 
} 
+0

답변 해 주셔서 감사합니다. –

답변

0

당신이 $scope.menuState 객체에 show 속성을 지정하려고하지만 $scope.menuState 객체가없는, 유가 필요하므로

"속성 '쇼'정의의 설정할 수 없습니다"라는 오류가 당신은 $scope.menustate경우에 show 속성을 설정할 수 없습니다

function DeathrayMenuController($scope) { 
    $scope.menuState = {};   // initialize the object first. 
    $scope.menuState.show = false; 
    $scope.toggleMenu = function() { 
     $scope.menuState.show = !$scope.menuState.show; 
    }; 
    // death ray functions left as exercise to reader 
} 
2

와 컨트롤러의 $scope.menuState 객체의 시작을 작성하면됩니다 210은 undefined입니다. 먼저 초기화해야합니다 택일

$scope.menuState = {}; 
$scope.menuState.show = false; 

또는 : 먼저 $ scope.menuStage를 정의하지 않을

$scope.menuState = { 
    show: false 
}; 
0

. 대신 다음을 시도해보십시오.

<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/> 

function DeathrayMenuController($scope) { 
$scope.menuState_show = false; 
$scope.toggleMenu = function() { 
$scope.menuState_show = !$scope.menuState_show; 
}; 
// death ray functions left as exercise to reader 
} 
관련 문제