我是Angularjs的新手
我想使用angular-translate
这是网站
http://pascalprecht.github.io/angular-translate/
我引用它的文档,我收到了错误
Uncaught TypeError: Cannot call method 'useStaticFilesLoader' of undefined from remoteApp
这是我的代码
app.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'
}
}
})}]);
我不知道,
请帮助
答案 0 :(得分: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) {
// ...
}]);