Angularjs 用角表示错误
为什么这个代码会给出错误?我收到错误“无法设置未定义的属性'show'”Angularjs 用角表示错误,angularjs,angularjs-directive,ng-show,Angularjs,Angularjs Directive,Ng Show,为什么这个代码会给出错误?我收到错误“无法设置未定义的属性'show'” 切换菜单 stun 分解 从历史记录中删除 函数deathraymenumcontroller($scope){ $scope.menuState.show=false; $scope.toggleMenu=函数(){ $scope.menuState.show=!$scope.menuState.show; }; //死亡射线的功能留给读者作为练习 } 您将为$scope.menuState对象分配show属性,但
切换菜单
- stun
- 分解
- 从历史记录中删除
函数deathraymenumcontroller($scope){
$scope.menuState.show=false;
$scope.toggleMenu=函数(){
$scope.menuState.show=!$scope.menuState.show;
};
//死亡射线的功能留给读者作为练习
}
您将为$scope.menuState
对象分配show
属性,但您没有$scope.menuState
对象
因此,您需要做的是,创建一个$scope.menuState
对象作为控制器的开头
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
}
如果
$scope.menustate
未定义,则无法在$scope.menustate
上设置show
属性。您需要首先对其进行初始化:
$scope.menuState = {};
$scope.menuState.show = false;
或者:
$scope.menuState = {
show: false
};
您没有首先定义$scope.menuStage。请尝试以下方法:
<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
}
切换菜单
- stun
- 分解
- 从历史记录中删除
函数deathraymenumcontroller($scope){
$scope.menuState\u show=false;
$scope.toggleMenu=函数(){
$scope.menuState\u show=!$scope.menuState\u show;
};
//死亡射线的功能留给读者作为练习
}
<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
}