我有一个使用 angular 和 firebase 的应用程序。它调用我的 firebase url,并对返回的对象中的 2 个项目进行简单的 ng-repeat。
该应用程序在除 Internet Explorer 8 之外的所有浏览器中都运行良好。我经常在 IE 8 中对其进行测试并且它工作正常。并不是说我已经启动了它,而是在最近几天的某个时候它开始收到此错误。这段时间我对应用程序进行了更改,但我认为没有任何事情会改变 IE8 的呈现方式。
IE8中的错误很简单:
SCRIPT5007:无法设置未定义或空引用 firebase.js 的属性“艺术家”,第 1 行字符 28
我已将代码简化为基础,但仍然出现错误。
您可以在下面看到,艺术家是 $scope.xmatch 中我试图用 ng-repeat 重复的对象的名称。我必须得到这个工作,所以任何帮助将不胜感激。
应用程序.js
(function() {
'use strict';
angular.module('ipremiosApp', ['firebase']).config
}).call(this);
global.js
(function() {
'use strict';
angular.module('ipremiosApp').controller('GlobalCtrl',['$scope','$timeout', function($scope, $timeout) {
}]);
angular.module('ipremiosApp').controller('MatchCtrl',['$scope','$timeout','$routeParams','angularFire', function($scope,$timeout,$routeParams,angularFire) {
var url = 'https://my.firebaseio.com/myfirebase';
$scope.xmatch = angularFire(new Firebase(url), $scope, 'xmatch');
}]);
}).call(this);
索引.html
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body data-ng-app="ipremiosApp" data-ng-controller="GlobalCtrl">
<!--[if lt IE 9]>
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>
<![endif]-->
<div class="main-body match-page" data-ng-controller="MatchCtrl">
<div id="test" class="artist" data-ng-repeat="artist in xmatch.artists | orderBy: 'votes':true">
{{artist.name}}
</div>
</div>
<script src="bower_components/jquery/jquery.js"></script>
<script src="bower_components/angular/angular.min.js"></script>
<script src="https://cdn.firebase.com/v0/firebase.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-fire/angularfire.js" type="text/javascript"></script>
<script src="scripts/app.js"></script>
<script src="scripts/controllers/global.js"></script>
</body>
</html>