0
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() 并得到了一个错误。

4

2 回答 2

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

于 2013-10-24T18:22:38.853 回答
0

我认为您应该将“.service”更改为“.factory”。

正如我在创建服务文档中看到的那样, 有 3 种创建自定义服务的方法。其中之一是使用工厂方式,如下所示:

var myModule = angular.module('myModule', []);
   myModule.factory('serviceId', function() {
      var shinyNewServiceInstance;
     //factory function body that constructs shinyNewServiceInstance
     return shinyNewServiceInstance;
  });

希望有所帮助。

于 2013-10-24T18:37:44.750 回答