Angularjs 角度平移喷油器:模块错误
根据关于如何使用角度平移添加平移的精彩解释() 我犯了一个头脑不清醒的错误,我想知道为什么会发生这种情况?我做错了什么 错误: angular.js:36未捕获错误:[$injector:modulerr]$injector/modulerr?p0=app&p1=Error%3A%20…alhost%3A9085%2FScripts%2factors%2fagular.min.js%3A18%3A170) 目标: 在我的整个应用程序中部分加载翻译 我所做的:Angularjs 角度平移喷油器:模块错误,angularjs,angular-translate,Angularjs,Angular Translate,根据关于如何使用角度平移添加平移的精彩解释() 我犯了一个头脑不清醒的错误,我想知道为什么会发生这种情况?我做错了什么 错误: angular.js:36未捕获错误:[$injector:modulerr]$injector/modulerr?p0=app&p1=Error%3A%20…alhost%3A9085%2FScripts%2factors%2fagular.min.js%3A18%3A170) 目标: 在我的整个应用程序中部分加载翻译 我所做的: 通过bower下载(两者),并包含在
- 角度平移
- 角平移装载机部分
请帮忙 Short:您认为RequireJS中的依赖关系管理不正确。控制器模块应要求
angularTranslate
,而不是pascalprecht.translate
'angularTranslate': '../Scripts/components/angular-translate-loader-partial/angular-translate-loader-partial.min'
长: 首先,我建议您使用官方文件和指南,您可以在 我还建议使用最新的AngularJS(1.5.x atm)和AngularTranslate(2.10.x atm) 此外,我还建议您只使用库的非精简版本,因为它们会给您带来更好的体验。缩小的源文件不适用于开发人员 我还希望使用JSFIDLE、Plnkr或其他工具进行演示,因为它们为每个人提供了运行中的概念/错误证明 尽管如此,还不清楚您使用的是哪个版本的角度平移。如果您已经运行了
bower install angular translate
,您可能已经有了最新的链接,但是您所引用的链接后面的页面是由一个较旧的页面(大约三年前)创建的。API已经改变了
实际问题:我要说的是,您混合了AngularJS和RequireJS中的问题,这导致了此类异常
首先:您对RequireJS的(垫片)配置有误导性/混乱性。您不应该将部分加载程序插件命名为angularTranslate
'angularTranslate': '../Scripts/components/angular-translate-loader-partial/angular-translate-loader-partial.min'
及
比较容易混淆的名称是pascalprecht.translate.partialLoader
现在是RequireJS模块依赖关系管理:
angulartranlate
->pascalprecht.translate
。无论何时请求最后一个,都会在之前加载第一个。那很好pascalprecht.translate
和angulartranlate
(实际上是部分加载程序)。这很好,但是第一个已经过时了。它将自动可用,因为您已经定义了垫片依赖项pascalprecht.translate
translatePartialLoaderProvider
)
免责声明:我是AngularJS插件AngularTranslate的共同维护者。简短:您在RequireJS中的依赖关系管理是不正确的。控制器模块应要求
angularTranslate
,而不是pascalprecht.translate
'angularTranslate': '../Scripts/components/angular-translate-loader-partial/angular-translate-loader-partial.min'
长: 首先,我建议您使用官方文件和指南,您可以在 我还建议使用最新的AngularJS(1.5.x atm)和AngularTranslate(2.10.x atm) 此外,我还建议您只使用库的非精简版本,因为它们会给您带来更好的体验。缩小的源文件不适用于开发人员 我还希望使用JSFIDLE、Plnkr或其他工具进行演示,因为它们为每个人提供了运行中的概念/错误证明 尽管如此,还不清楚您使用的是哪个版本的角度平移。如果您已经运行了
bower install angular translate
,您可能已经有了最新的链接,但是您所引用的链接后面的页面是由一个较旧的页面(大约三年前)创建的。API已经改变了
实际问题:我要说的是,您混合了AngularJS和RequireJS中的问题,这导致了此类异常
首先:您对RequireJS的(垫片)配置有误导性/混乱性。您不应该将部分加载程序插件命名为angularTranslate
'angularTranslate': '../Scripts/components/angular-translate-loader-partial/angular-translate-loader-partial.min'
及
比较容易混淆的名称是pascalprecht.translate.partialLoader
现在是RequireJS模块依赖关系管理:
angulartranlate
->pascalprecht.translate
。无论何时请求最后一个,都会在之前加载第一个。那很好pascalprecht.translate
和angulartranlate
(实际上是部分加载程序)。这很好,但是第一个已经过时了。它将自动可用,因为您已经定义了垫片依赖项
var app = angular.module('app', ['...',
'pascalprecht.translate',
'angularTranslate' ]);
app.config(['$routeProvider', '$locationProvider', '$httpProvider', '$translateProvider', '$translatePartialLoaderProvider',
function ($routeProvider, $locationProvider, $httpProvider, $translateProvider, $translatePartialLoaderProvider) {
var module = angular.module('common', ['common.services', 'common.controllers', 'common.directives', 'common.filters', 'pascalprecht.translate']);
return module;
function angularTranslate ($translateProvider, $translatePartialLoaderProvider) {
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: '../Translations/locale-{part}.json'
});
$translateProvider.preferredLanguage('en');
}
return angularTranslate;
'angularTranslate': '../Scripts/components/angular-translate-loader-partial/angular-translate-loader-partial.min'
'angularTranslate': {
deps: ['pascalprecht.translate']
}
define(
[
...
'pascalprecht.translate',
'angularTranslate',
],
var app = angular.module('app', ['...',
'pascalprecht.translate',
'angularTranslate' ]);
define(
[
...
'pascalprecht.translate',
'angularTranslate',
],
var app = angular.module('app', ['...',
'pascalprecht.translate' ]);