Angular Translate:$ translate undefined在控制器

时间:2015-05-28 14:42:27

标签: angularjs dependency-injection angular-translate

我正在使用带有自定义功能的ng-show。该函数调用控制器内的'$ translate.use'方法。

有趣的是,这适用于主页,但不适用于所有其他控制器,尽管它们都使用相同的代码安静。

控制台告诉我$ translate未定义。

这是我对索引页面的代码安静:

app.controller('LangCtrl', function ($scope, $translate) {

    $scope.isenglish = function () {
        if ($translate.use() == 'en_US') {
            return true;
        }
        return false;
    }........

和另一个控制器:

app.controller('selectFormController', ['$scope', '$http', 'storage', '$rootScope', function ($scope, $http, storage, $rootScope, $translate) {

........

  $scope.isenglish = function () {
        if ($translate.use() == 'en_US') {
            return true;
        }
        return false;
    }

我真的很困惑 - 有人能帮助我吗?

非常感谢!!! 斯特芬

2 个答案:

答案 0 :(得分:3)

它在LangCtrl控制器中工作,因为您直接注入$translate依赖项。但是在您的selectFormController控制器中,您使用的是内联数组注释,您需要首先在数组中添加依赖项string(依赖项名称),然后您可以在控制器function

简而言之,您错过了在$translate控制器中添加selectFormController依赖项。

<强>代码

app.controller('selectFormController', ['$scope', '$http', 'storage', '$rootScope', '$translate', 
function ($scope, $http, storage, $rootScope, $translate) {

答案 1 :(得分:3)

您似乎并没有真正注入$translate,请查看此内容:

app.controller('selectFormController', ['$scope', '$http', 'storage', '$rootScope', '$translate', function ($scope, $http, storage, $rootScope, $translate)

$translate

之后注意$rootScope