我正在尝试将用 AngularJS1 编写的组件升级到 Angular6 。在我的示例中,通过扩展放置在“ directive-wrappers”文件夹下的“ UpgradeComponent ”,我采用了为所有现有AngularJS1组件提供包装的方法。
在加载应用程序时,我收到控制台错误
Error: [$injector:unpr] Unknown provider: testDirective2DirectiveProvider <- testDirective2Directive
https://errors.angularjs.org/1.7.8/$injector/unpr?p0=testDirective2DirectiveProvider%20%3C-%20testDirective2Directive
at eval (angular.js:138)
at eval (angular.js:4924)
at Object.getService [as get] (angular.js:5084)
at eval (angular.js:4929)
at Object.getService [as get] (angular.js:5084)
at Function.UpgradeHelper.getDirective (upgrade_helper.ts:56)
at new UpgradeHelper (upgrade_helper.ts:52)
at TestDirective2Wrapper.UpgradeComponent (upgrade_component.ts:106)
at new TestDirective2Wrapper (TestDirective2Wrapper.ts:27)
at createClass (provider.ts:265) "<app-root _nghost-c0="">"
要在线模拟相同的应用程序,我在stackblitz中创建了相同的angularjs指令及其包装器
答案 0 :(得分:0)
docsSampleDirective.js
文件存在问题。
您已经在 testApp
文件中初始化了 app.module.js
模块时,第二次在此处初始化了AngularJS模块。只需从那里摆脱依赖项数组即可:
angular
.module("testApp")
.controller("Controller", [
"$scope",
function($scope) {
$scope.customer = {
name: "Naomi",
address: "1600 Amphitheatre"
};
}
])
.directive("docsSimpleDirective", function() {
return {
template: "Name: {{customer.name}} Address: {{customer.address}}"
};
});
这是您推荐的Working Sample StackBlitz。