我目前正在学习 AngularJS 中的教程。这是我的 controllers.js 文件中的代码。
'use strict';
angular.module ( 'F1FeederApp.controllers' , [] )
.controller ( 'driversController' , function ( $scope , ergastAPIservice ) {
$scope.nameFilter = null;
$scope.driversList = [];
ergastAPIservice.getDrivers ().success ( function ( response ) {
$scope.driversList = response.MRData.StandingsTable.StandingsLists [ 0 ].DriverStandings;
});
});
我收到以下错误:
1) $sceDelegate 策略不允许从 url 加载资源。
2) TypeError: ergastAPIservice.getDrivers(...).success 不是函数
我完全不确定是什么导致了这些错误,我对 Angular 很陌生。我在我的示例和其他示例之间看到的唯一可能的区别是在这段代码中:( services.js )
'use strict';
angular.module ( 'F1FeederApp.services' , [] )
.factory ( 'ergastAPIservice' , function ( $http ) {
var ergastAPI = {};
ergastAPI.getDrivers = function () {
return $http ({
method : 'JSONP' ,
url : 'http://ergast.com/api/f1/2013/driverStandings.json?callback=JSON_CALLBACK'
});
};
return ergastAPI;
});
我注意到的不同之处在于,在我的 getDrivers 函数末尾有一个分号,并且我use strict
在文件顶部也有该语句。但是,grunt 拒绝在没有这两行的情况下运行应用程序,所以我认为这不是问题所在。
如果有人能在这里指出我正确的方向,我将不胜感激。