2016-07-29 58 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

我;無法做到它。你能編輯我的代碼嗎? –

相關問題