我目前正在学习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会拒绝运行该应用程序,因此我认为这可能不是问题所在。
如果有人能指点我正确的方向,我将非常感激。
$sce
是在哪里定义的,它是什么的引用? - lance.dolan