我已宣布我的应用并拥有一个控制器(用于演示目的):
var module = angular.module("app", [])
module.controller("modalCtrl", ["$scope", function ($scope, dataService) {
$scope.printEntity = function () {
console.log(dataService.getEntityArray());
}
}]);
一项服务:
module.factory("dataService", function () {
var entityArrayService = [1,2];
return {
getEntityArray: function () {
return entityArrayService;
}
};
});
当我从我的视图中调用$scope.printEntity
时,我总是被告知dataService.getEntityArray()
未定义。
我已将服务作为依赖项加载,并在return语句之外声明了我的entityArrayService数组。我看起来很高很低的答案,但无济于事。我的目标是在两个控制器之间共享一段数据,但是在那一刻我甚至无法使用一个控制器来检索数据。
答案 0 :(得分:1)
服务未作为依赖项加载。改变这一行:
module.controller("modalCtrl", ["$scope", function ($scope, dataService) {
到此:
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
答案 1 :(得分:0)
您正在使用严格的依赖声明语法。因此,如果向控制器添加参数,则还必须添加其声明。
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
...
}
答案 2 :(得分:0)
您没有在控制器中注入dataService
。试试:
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
// ...
});
答案 3 :(得分:0)
缺少控制器中的服务注入:
请更正:
...
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
...
其他代码是正确的。