在AngularJS中从另一个模块导入组件的最佳方法是什么?

问题描述 投票:0回答:1

我在AngularJS(v1.7)应用程序中有2个子模块,我们称它们为A和B。我正在尝试从模块B(componentB)导入一个组件(带有html模板和控制器),以便使用模块A(componentA)中组件模板的内部。

[阅读Reuse AngularJS Component in another Module (Dependency Injection)之后,我首先尝试通过将componentB指定为componentA的依赖项,然后在componentA的模板中使用它来进行此操作。

componentA.js

angular.module('A', ['componentB']).component('componentA', {...});

componentA.html

<div>
   <componentB></componentB>
</div>

不幸的是,即使正确定义了componentB并成功在模块B中使用了它,它也不起作用。我还试图通过修改app.js,将模块B指定为模块A的依赖项,如下所示:

angular.module('A', ['B'])
.config(...

[在两种情况下,我都得到一个

未捕获的错误:[$ injector:modulerr]

我很难找到与AngularJS相关的类似问题/文章,而不是较新的Angular。我对AngularJS也很生疏,因此,请提前感谢您的帮助。

angularjs components
1个回答
0
投票

非常简单:

angular.module("moduleB",[])
.component("componentB", {
     template: "<div>This is Component B from Module B</div>"
});

angular.module("moduleA",["moduleB"])
<div ng-app="moduleA">
    <component-b></component-b>
</div>

moduleA通过将moduleB声明为依赖项从moduleB导入组件。


模块创建与检索

仅第一个模块声明应指定依赖项。

ERRONEOUS

angular.module('moduleA', [])
.controller('ctrl', /* ... */) 

angular.module('moduleA', ['moduleB'])
.service('serviceA', /* ... */)

再次声明依赖关系将导致控制器被注销。

更好

 angular.module('moduleA', ['moduleB'])

 angular.module('moduleA')
.controller('ctrl', /* ... */) 

 angular.module('moduleA')
.service('serviceA', /* ... */)

有关更多信息,请参阅

© www.soinside.com 2019 - 2024. All rights reserved.