我正在运行一个教程,但他们在1.3.8之前使用的是AngularJS版本。
我的代码中缺少什么,因此可以注入此数据服务?
他们使用以下代码将服务注入控制器:
var myApp = angular.module('myApp', []);
myApp.factory('Data', function () {
return { message: "I'm data from a service" };
});
function FirstCtrl($scope, Data) {
$scope.data = Data;
}
function SecondCtrl($scope, Data) {
$scope.data = Data;
}
以下是我正在尝试更改的代码,因此可行:
var myApp = angular.module('app', []);
myApp.factory('Data', function(){
return {message:"Data from service"}
});
angular.module('app', Data)
.controller('FirstController', ['$scope', function($scope) {
$scope.data = Data;
}])
.controller('SecondController', ['$scope', function($scope) {
$scope.data = {message: "panel"};
}]);
答案 0 :(得分:2)
您必须在控制器@ Data
中注入.controller('FirstController', ['$scope', 'Data', function($scope, Data) {
not list作为模块依赖项@ angular.module('app', Data)
。有关详细信息和其他选项,请参阅official DI documentation。
angular.module('app')
.controller('FirstController', ['$scope', 'Data', function($scope, Data) {
$scope.data = Data;
}])
.controller('SecondController', ['$scope','Data', function($scope, Data) {
$scope.data = {message: "panel"};
}]);
答案 1 :(得分:2)
当您使用angular.module('app')
获取已创建的模块时。您不应该尝试将Data
工厂注入模块,而是注入控制器。
angular.module('app')
.controller('FirstController', ['$scope', 'Data', function($scope, Data) {
$scope.data = Data;
}])
.controller('SecondController', ['$scope', 'Data', function($scope, Data) {
$scope.data = {message: "panel"};
}]);
答案 2 :(得分:1)
使用此:
angular.module('app')
.controller('FirstController', ['$scope', function($scope, Data) {
$scope.data = Data;
}])
.controller('SecondController', ['$scope', function($scope, Data) {
$scope.data = {message: "panel"};
}]);