Showing posts with label Angular JS with AEM Mobile. Show all posts
Showing posts with label Angular JS with AEM Mobile. Show all posts

Thursday 9 March 2017

Angular JS Implementation for AEM Mobile Articles

AngularJS Articles in AEM Mobile

AEM Articles are normal HTML articles and it supports any front end technology, which a normal web page supports.

In this post, we will see how we can create an Angular JS article in AEM Mobile.

What is AngularJS?

Angular JS is a new Javascript technology which can be added to any HTML by adding relevant Angular library inside <script> tag.
Angular adds Directives to HTML page, and binds data to page with Expressions.

How to add AngularJS in an article?
AEM Mobile article structure contains an index.html with js, css, images, lib folders. This structure is used to create .article file using AEM Mobile packager.

Steps to create angular article:

  • Get Angular

We need to get latest AngularJS library from AngularJS website. Download 'angular.min.js' and any required angular additional libraries to your /js directory in article folder.


  • Create Controller

Now create a file controller.js in /js folder and add below code.

<!--Your Controller.js-->


var app = angular.module("myFirstAngular",['ngSanitize'], function ($compileProvider) {

  $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);

});
app.controller("controller",function($scope,$window,$sce){
 
$scope.personsList =[
                {name:'John',age:'23'},
                {name:'Jannet',age:'24'},
                {name:'Mark',age:'25'}              
                ];
                }
                );
             

  • Update index file of article to involve AngularJS in article  

         
Add angularJS libraries in your index.html. Below we have added sanitizor also which helps to sanitize the urls.
             
        <head>          
            <script src="js/angular.min.js"></script>
            <script src="js/angular-sanitize.min.js"></script>
        </head>
  • Define body element which refers the controller and app.      

        <!-- Body-->
        <!-- ng-app defines an AngularJS application below-->
        <!-- ng-controller defines the application controller below-->
        <body ng-app="myFirstAngular" ng-controller="controller">
  • Add AngularJS code (which is of syntax 'ng-')
        <!--Div -->
        <!--ng-repeat repeats a set of HTML, a given number of times-->
        <div ng-repeat="person in personsList">
                        <div class = "your class">
                            <p class="name">{{person.name}}</p>
                            <p class="age" >{{person.age}}</p>
                        </div>                      
        </div>

  • Save and upload to AEM - On-demand Portal

Save all the files, drag and drop it to AEM Mobile Packager. Your angular '.article' file is ready. Upload this to AEM - On-demand portal.

When you use AngularJS, you may face issue in adding 'navto' as cross browser call.
Just add 'navto' in aHrefSanitizationWhitelist so that it gets white listed.

Read More:

 Various options in AEM integrated with AEM Mobile On-Demand Portal

 Add/MAP user to AEM Mobile project

 Create Article/Banner from AEM and publish it to AEM Mobile

 Integrate AEM with AEM Mobile

 Create an APP in AEM And Mapping with AEM Mobile On-Demand

 AEM Mobile Interview questions for developers

 Adjusting Home Navigation Menu from AEM Mobile On-Demand portal