2016-07-29 71 views
0

我正在试图将$ scope注入到angular-translate指令中。但它显示

angular.min.js:6 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=navBar&p1=Error%3A%…eb%20(http%3A%2F%2Flocalhost%3A8080%2Fsrc%2Fjs%2Fangular.min.js%3A41%3A249) 

上述错误遇到。我想用$scope值从控制器$translateProvider.preferredLanguage($scope.selectedLang);

app.config(function ($translateProvider, $scope){ 
    $translateProvider.useSanitizeValueStrategy(null); 
    $translateProvider.translations('english', { 
     'data': 'I am Ram' 
    }); 
    $translateProvider.translations('telugu', { 
     'data': ' \u0C28\u0C47\u0C28\u0C41 \u0C30\u0C3E\u0C2E\u0C4D' 
    }); 
    $translateProvider.preferredLanguage($scope.selectedLang); 
}); 
app.controller('langTranslate', function ($scope){ 
    $scope.totalLang = ['english', 'telugu']; 
    $scope.lang = 'english'; 
    $scope.selectedLang = 'english'; 
    $scope.$watch(function(){ 
     $scope.selectedLang = $scope.lang; 
    }); 
}); 

如果我删除$scope$translateProvider.preferredLanguage($scope.selectedLang);from app.config它工作正常。但我必须在那里使用$scope值。请帮我解决这个问题。

回答

0

也许这个问题会帮助你了解你需要做的

How to inject a service into app.config in AngularJS

代替的app.config($ translateProvider,$范围)

尝试app.run($ translateProvider什么, $ rootScope)

app.run(function ($translateProvider, $rootScope){ 
    $translateProvider.useSanitizeValueStrategy(null); 
    $translateProvider.translations('english', { 
     'data': 'I am Ram' 
    }); 
    $translateProvider.translations('telugu', { 
     'data': ' \u0C28\u0C47\u0C28\u0C41 \u0C30\u0C3E\u0C2E\u0C4D' 
    }); 
    $translateProvider.preferredLanguage($rootScope.selectedLang); 
}); 
app.controller('langTranslate', function ($scope, $rootScope){ 
    $scope.totalLang = ['english', 'telugu']; 
    $scope.lang = 'english'; 
    $rootScope.selectedLang = 'english'; 
    $scope.$watch(function(){ 
     $rootScope.selectedLang = $scope.lang; 
    }); 
}); 
+0

你能编辑我的代码吗? –

+0

没有。获取此错误 '未捕获的错误:[$ injector:unpr] http://errors.angularjs.org/1.4.8/$injector/unpr?p0 =%24translateProviderProvider%20%3C-%20%24translateProvider' –

+0

加载翻译供应商? 你包括翻译供应商给你angular.module? – googleler

0

请找到这里的配置文件:https://docs.angularjs.org/guide/module

里面的配置块只能注入提供者。

为了使用它,您可以使用$rootScope提供程序,因为$scope是模块。

希望它可以帮助你!

干杯!

+0

你能编辑我的代码吗? –

0

您不能在配置阶段要求实例 - 您只能询问供应商。欲了解更多信息,请阅读guide

app.config(function (MyFactory){ 
    console.log(MyFactory.test); 
}); 
app.factory('MyFactory', function(){ 
    return { 
     test: 'testing' 
    }; 
}); 
+0

你能编辑我的代码吗? –

+0

你可以通过工厂使用它..看到这个例子http://stackoverflow.com/questions/16828287/what-things-can-be-injected-into-others-in-angular-js –

+0

我;无法做到它。你能编辑我的代码吗? –

相关问题