从服务更新角度模型

时间:2013-10-24 17:49:33

标签: javascript angularjs angular-ui

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()并收到错误。

2 个答案:

答案 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;
  });

希望能提供帮助。