是否可以集成Angular.js(Angular 1)和AEM(Adobe Experience Manager 6.2)

时间:2017-08-06 05:29:17

标签: javascript angularjs adobe aem

我不能包含我需要回答标题的所有内容,所以这就是我关注的问题:

  • 开发AEM时是否需要客户端框架/ lib?如果是,那么最适合AEM和开发的最佳方法是什么(Angular.js就是我认为的方式"足够"良好且易于集成)。
  • 如果使用angular.js,我有些疑惑:
    • 哪个是最高级的应用程序(使用ng-app初始化)以及我们如何加载它,因为AEM组件是分开的,我无法在其中任何一个中加载大多数。
    • IMO,大多数超级ng-app将被加载到模板中(这是所有组件都需要的,但它只是在理论上(我不确定)并且我没有看到任何组件示例无处显示如何在TEMPLATE创建时加载JS,CSS文件(而不是创建组件,只是为了清楚)
    • 替代方法,每个AEM组件将是一个单独的角度模块,它将手动引导(我也不确定,请帮助澄清)

最后但并非最不重要的,如果您有使用此堆栈的示例(足够复杂,不像hello world)或生产项目(完美!),请帮助告诉我,因为我最关心的是"是它可以做"。

许多人提前感谢!

2 个答案:

答案 0 :(得分:2)

我目前正在成功使用角度JS与AEM。

哪个是最外面的应用程序(使用ng-app初始化)以及我们如何加载它,因为AEM组件是分开的,我无法在其中任何一个中加载大多数。

ans :您可以为此创建渲染器组件,并将其作为外部应用程序,然后将所需的clientlib添加到其中。之后,您可以将渲染器范围用作普通的角度应用程序。

IMO,大多数的超级ng-app都将加载到模板中(这是所有组件都需要的,但它只是在理论上(我不确定)并且我没有看到任何示例向我显示如何在TEMPLATE创建时加载JS,CSS文件(不是创建组件,只是为了清楚)

ans:而不是在模板中加载它很容易将它作为客户端lib添加到组件中,因为AEM中的js / css等所有内容都可以将其添加为客户端lib < / p>

替代方法,每个AEM组件将是一个单独的角度模块,它将手动引导(我也不确定,请帮助澄清)

ans:是的,你可以创建一个角色应用程序组件,你可以单独引导它

Here is the directory structure for a clientlib

答案 1 :(得分:0)

我已将Angular 1.x与AEM 6.x一起使用并创建了SPA(单页应用程序)。此外,使用Angular 1.x创建了AEM Screens App。

可能有很多方法可以做到,但我遵循以下方法: -

  
      
  1. 使用 ng-app 的AEM页面模板(正文标记)并为网站添加角度依赖关系(clientlib angular 1.x)
  2.   
  3. 在您的站点clientlib(JS)中定义角度模块说 module.js ,   var mydb; var uri = 'mongodb://localhost/user1'; var promise = mongooose.connect(uri,{ useMongoClient: true, }); promise.openUri(uri,function(errr,db){ if(errr){ throw errr; }else{ console.log("Connection Successfull"); mydb = db; } });
  4.   
  5. 您还可以为不同的路径example: var app = angular.module('app', ['ui.router', 'ngAnimate','ui.bootstrap.tpls','ui.bootstrap.modal']);
  6. 定义状态提供程序   
  7. 在特定的clientlib(js)文件中定义每个组件特定的模块/控制器。   app.config(function ($stateProvider, $urlRouterProvider) {});   example (html): <div ng-controller="LoginCtrl" />
  8.