2013-10-24 38 views
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()并出现错误。从服务更新角度模型

回答

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

+0

感谢还是调用$ rootScope.name = “测试1”;不更新ui – nullException

+0

你有没有看到我贴的小提琴?请发布您的HTML代码 –

0

我想你应该改变“.service”by“.factory”。

正如我可以在creating services docs看到有创建自定义服务的3种方式。其中之一是使用工厂方式,如下所示:

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

希望能提供帮助。