我目前正在开发Grafana插件,但是我在angularJS的模块系统上遇到了一些问题。
我实际上想做的是创建一种服务,该服务应让我调用外部API并对其进行处理。
这就是我在module.js主文件中所做的
{
//Directive which lets use the ng-model attribute in an input file field
angular.module('grafana.services', ['ngResource'])
.directive("selectNgFiles", () => {
return {
require: "ngModel",
link: function postLink(scope, elem, attrs, ngModel) {
elem.on("change", () => ngModel.$setViewValue(elem[0].files))
}
}
})
.service('API', $resource => {
return $resource('LINK/:id', {id: "@id"},
{
startNetwork: { method: "GET" }
});
});
}
这是与Grafana插件页面相关的模块上的内容
class AddNetworkCtrl {
constructor($http, backendSrv) {
this.$http = $http;
this.backendSrv = backendSrv;
angular.module('grafana.controllers', ['grafana.services']).controller('AddNetworkCtrl', ($scope, API) => {
$scope.data = {
databases: [],
file: null,
database: null
};
this.backendSrv.get('api/datasources').then(
data => $scope.data.databases = data,
error => sendAlert(AlertType.ERROR, 'GnB App Error', error)
);
$scope.loadNetwork = () => {
API.startNetwork({id: 1}, data => {
console.log(data);
});
};
});
}
}
问题是:当我尝试加载该页面时,它失败并显示此控制台错误:
错误:[$ controller:ctrlreg]未注册名称为'AddNetworkCtrl'的控制器。
我在做什么错了?