我在Windows 8.1上运行Chrome,版本46.0.2490.71 m,并尝试从本地文件系统测试AngularJS应用。具体来说,我正在尝试设置'Step 3' from the official AngularJS tutorial。我已经取出了各个文件(并删除了CSS)并将其列在下面。 我第一次在浏览器中打开index2.html它工作正常。
如果我然后刷新页面(可能是2到3次 - 只需保持刷新直到问题出现:))然后我从Angular得到一个例外,因为它找不到控制器。特别是它说“错误:[$ injector:nomad]模块'ngLocale'不可用!你拼错了模块名称或忘了加载它......”。
如果我完全关闭Chrome,然后再次启动它,页面就可以了。
为什么会发生这种情况? (更重要的是,如何修复它?)
'use strict';
/* Controllers */
var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function($scope) {
$scope.phones = [
{'name':'F', 'snippet':'F2'},
{'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.'},
{'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.'},
{'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.'}
];
$scope.orderProp = 'age';
$scope.f = 'f!';
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<!doctype html>
<html lang="en" ng-app="phonecatApp">
<head>
<meta charset="utf-8">
<title>Google Phone Gallery</title>
<!--<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">-->
<!-- <link rel="stylesheet" href="css/app.css"> -->
<script src="angular.js"></script>
<script src="controllers.js"></script>
</head>
<body ng-controller="PhoneListCtrl">
<ul>
<li ng-repeat="phone in phones">
<span>{{phone.name}}</span>
<p>{{phone.snippet}}</p>
</li>
</ul>
</body>
</html>