Angularjs TypeError:无法读取属性'$$阶段';空-角JS的定义
我正在学习AngularJS并尝试开发一个简单的应用程序。该应用程序由两个页面(部分)组成,分别为列表和详细信息 如果我分别访问这两个页面(在地址栏中手动输入URL),两个页面都可以正常加载,没有任何错误。但如果我从列表页面导航到详细信息页面,控制台将显示此错误Angularjs TypeError:无法读取属性'$$阶段';空-角JS的定义,angularjs,Angularjs,我正在学习AngularJS并尝试开发一个简单的应用程序。该应用程序由两个页面(部分)组成,分别为列表和详细信息 如果我分别访问这两个页面(在地址栏中手动输入URL),两个页面都可以正常加载,没有任何错误。但如果我从列表页面导航到详细信息页面,控制台将显示此错误 TypeError: Cannot read property '$$phase' of null at Object.$$debounceViewValueCommit (angular.min.js:293) at Object.$
TypeError: Cannot read property '$$phase' of null
at Object.$$debounceViewValueCommit (angular.min.js:293)
at Object.$setViewValue (angular.min.js:293)
at Array.<anonymous> (angular.min.js:315)
at m.$digest (angular.min.js:145)
at m.$apply (angular.min.js:147)
at l (angular.min.js:101)
at XMLHttpRequest.N.onload (angular.min.js:106)
index.html
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Angular Demo</title>
<script src="lib/angular/angular.min.js"></script>
<script src="lib/angular/angular-route.min.js"></script>
<script src="js/app.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="page-header">
<h1><a href="#!/list">Heroes</a></h1>
</div>
<div ng-view></div>
</div>
</div>
</div>
</body>
</html>
<section>
<div class="form-group">
<input ng-model="query" type="text" class="form-control" placeholder="Search for heroes" autofocus>
</div>
<div class="form-group">
<label>Sort by: </label>
<select ng-model="order">
<option value="nickname">Nickname</option>
<option value="name">Name</option>
</select>
<input ng-model="direction" type="radio" name="direction" checked>
<label>Ascending</label>
<input ng-model="direction" type="radio" name="direction" value="reverse">
<label>Descending</label>
</div>
<ul class="list-group">
<li class="list-group-item" ng-repeat="item in hero | filter: query | orderBy: order:direction">
<a href="#!/details/{{hero.indexOf(item)}}">
<img ng-src="images/{{item.imagename}}.png" alt="Photo of {{item.nickname}}">
<div>
<h2>{{item.nickname | uppercase}}</h2>
<h3>{{item.name}}</h3>
</div>
</a>
</li>
</ul>
</section>
<section>
<div ng-model="hero" class="jumbotron">
<h2>{{hero[whichItem].nickname}}</h2>
<div>
<h3>{{hero[whichItem].name}}</h3>
<img ng-src="images/{{hero[whichItem].imagename}}.png" alt="Photo of {{hero[whichItem].imagename}}">
<div>{{hero[whichItem].lore}}</div>
</div>
</div>
<a href="#!/list">« Back to search</a>
</section>
使用angularjs的稳定版本(目前最新版本为1.5.9)来摆脱 “TypeError:无法读取null-AngularJS的属性“$$phase” 错误
这实际上破坏了我的应用程序,并导致一个错误:$controller:ctrlreg此名称的控制器未注册。我已修改了您的脚本文件。我编辑了脚本,使其与您的脚本相同,但主要错误
TypeError:无法读取null的属性“$$phase”
仍然存在。您正在使用的是什么版本的angular?只是使用angular js的稳定版本。最新版本是1.5.9。它将解决这个问题。并在详细信息页面中获得正确的索引项。您可以使用
,这似乎是AngularJS v1.6.0-rc.2的一个问题。我已更改为AngularJS v1.5.9,问题消失了。谢谢@nikky指出这一点。我还注意到片段标识符现在是#,而不是#!
<section>
<div ng-model="hero" class="jumbotron">
<h2>{{hero[whichItem].nickname}}</h2>
<div>
<h3>{{hero[whichItem].name}}</h3>
<img ng-src="images/{{hero[whichItem].imagename}}.png" alt="Photo of {{hero[whichItem].imagename}}">
<div>{{hero[whichItem].lore}}</div>
</div>
</div>
<a href="#!/list">« Back to search</a>
</section>
[
{
"nickname" : "Sniper",
"imagename" : "sniper",
"name" : "Kardel Sharpeye",
"lore" : "Bla... Bla... Bla..."
},
{
"nickname" : "Io",
"imagename" : "io",
"name" : "Wisp",
"lore" : "Bla... Bla... Bla..."
},
{
"nickname" : "Timbersaw",
"imagename" : "timbersaw",
"name" : "Rizzrack",
"lore" : "Bla... Bla... Bla..."
}
]