Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Angular.js:改变服务中的作用域_Angularjs - Fatal编程技术网

Angularjs Angular.js:改变服务中的作用域

Angularjs Angular.js:改变服务中的作用域,angularjs,Angularjs,我是AngularJS的新手,写了一个应该处理国际化的服务。我想让它直接处理$scope,而不是在每个控制器中编写一些逻辑 myServices.factory('i18n', ['$resource', function($resource){ var lang = "en"; var translations = {}; var useLang = function(lang){ return $reso

我是AngularJS的新手,写了一个应该处理国际化的服务。我想让它直接处理$scope,而不是在每个控制器中编写一些逻辑

myServices.factory('i18n', ['$resource',

    function($resource){

        var lang = "en";
        var translations = {};

        var useLang = function(lang){

            return $resource('i18n/' + lang + '.json', {}, {
                        query: { method:'GET', isArray:false} }).query();
        }

        return {
            'useLang'       : useLang,
            translations    : useLang(lang),
        }

我想使当前控制器的作用域可以在服务中直接访问。有可能吗?

我不太明白。将逻辑抽象到服务中,然后将它们注入控制器中是有意义的。当控制器绑定到模板时,它应该处理自己的作用域。范围数据的任何逻辑或处理都应该传递到服务中,然后由控制器传递到模板上。你能举个例子说明你希望你的服务对$scope做什么吗?