【问题标题】:Angular Translate: $translate undefined in controller角度翻译:$translate 在控制器中未定义
【发布时间】:2016-01-12 19:43:07
【问题描述】:

我正在使用带有自定义功能的 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;
    }

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

非常感谢!!! 史蒂芬

【问题讨论】:

  • 我猜你打错了.. app.controller('selectFormController', ['$scope', '$http', 'storage', '$rootScope', function ($scope, $ http, storage, $rootScope, $translate) { 应该是 app.controller('selectFormController', ['$scope', '$http', 'storage', '$rootScope','$translate', function ($scope , $http, 存储, $rootScope, $translate) {

标签: angularjs dependency-injection angular-translate


【解决方案1】:

看来你不是真的在注入$translate,看看这个:

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

注意$translate 后面的$rootScope

【讨论】:

  • 尴尬... ;-) 谢谢
【解决方案2】:

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

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

代码

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

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2019-03-08
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多