Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 用角表示错误_Angularjs_Angularjs Directive_Ng Show - Fatal编程技术网

Angularjs 用角表示错误

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属性,但

为什么这个代码会给出错误?我收到错误“无法设置未定义的属性'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
}