angular.module('app.services', []).service("test", function($http, $rootScope){
this.test=function(){
$rootScope.name="test1";
};
};
angular.module('app.controllers', []).controller('TestController', function ($scope, test) {
test.send();
})
我没有收到错误,但更改未应用于UI。我尝试了$ scope.apply()并收到错误。
答案 0 :(得分:0)
我们需要告诉Angular您的模块所依赖的模块,在我们的例子中,主模块是app.controllers
。
要从不同型号调用服务,我们需要告诉控制器我们的服务在哪里:
['app.services']
<强> JS 强>
var appServices = angular.module('app.services', []);
var appCtrl = angular.module('app.controllers', ['app.services']);
appServices
.service("test", function ($http, $rootScope) {
this.send = function () {
$rootScope.name = "test1";
};
});
appCtrl.controller('TestController', function ($scope, test) {
test.send();
});
演示 Fiddle
答案 1 :(得分:0)
我认为您应该通过“.factory”更改“.service”。
正如我在creating services docs中看到的,有三种创建自定义服务的方法。其中一个是使用工厂方式,如下所示:
var myModule = angular.module('myModule', []);
myModule.factory('serviceId', function() {
var shinyNewServiceInstance;
//factory function body that constructs shinyNewServiceInstance
return shinyNewServiceInstance;
});
希望能提供帮助。