2

我是 Angularjs 的新手

我想使用角度翻译

这是网站

http://pascalprecht.github.io/angular-translate/

我参考它的文件,我得到了错误

Uncaught TypeError: Cannot call method 'useStaticFilesLoader' of undefined from remoteApp 

这是我的代码

应用程序.js

angular.module('remoteApp', ['ui.bootstrap', 'ui.router', 'ngResource', 'truncate',    
  'pascalprecht.translate'])
  .config(['$translateProvider', function ($routeProvider, $stateProvider, $urlRouterProvider,      
    $translateProvider) {

$translateProvider.useStaticFilesLoader({
  prefix: 'languange/locale-',
  suffix: '.json'
});

$translateProvider.preferredLanguage('en');
$translateProvider.useLocalStorage();


$stateProvider
.state('index', {
    url: "",
    views: {
        "viewA": {
            templateUrl: "views/main.html",
            controller: 'MainCtrl'
        },
        "viewB": {
            templateUrl: "views/appList.html",
            controller: 'MainCtrl'
        },
        "viewC": {
            templateUrl: "views/appTree.html",
            controller: 'ApptreeCtrl'
        }
    },

})

.state('applicatoion', {
    url: "/applicatoion",
    views: {
        "viewA": {
            templateUrl: "views/main.html",
            controller: 'MainCtrl'
        },
        "viewB": {
            templateUrl: "views/appList.html",
            controller: 'MainCtrl'
        },
        "viewC": {
            templateUrl: "views/appTree.html",
            controller: 'ApptreeCtrl'
        }
    }
})}]);

我对此一无所知,

请帮忙

4

1 回答 1

2

现在这就是你调用 .config 的方式

config(['$translateProvider', function ($routeProvider, $stateProvider, $urlRouterProvider,      
    $translateProvider) {
    // ...
}]);

.config 有它的参数(依赖项)由 AngularJS 注入,有两种调用 config 的方法;

1 - 传入一个函数,AngularJS 将读取参数名称并找到匹配的依赖项。2 - 传入一个数组,其中最后一项是函数,其他项是依赖项的名称,如果使用它,AngularJS 将不会读取函数的参数名称。存在的原因是您可以缩小代码;因为缩小会改变参数名称,而 AngularJS 使用这些名称来查找依赖项。

现在你只指定了一个依赖'$translateProvider'项,这意味着传递给函数的第一个参数是 translateProvider,而其他参数最终是未定义的,因为你没有要求更多的依赖项。

您可以做的是让 AngularJS 像这样读取您的依赖项名称

config(function ($routeProvider, $stateProvider, $urlRouterProvider, $translateProvider) {
    // ...
});

或者您可以指定所有依赖项,像这样匹配函数参数列表,允许您(仅当您始终如一地这样做时)在不破坏代码的情况下缩小代码。

config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$translateProvider',
    function ($routeProvider, $stateProvider, $urlRouterProvider, $translateProvider) {
        // ...
}]);
于 2013-10-22T08:29:53.817 回答