Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Sample Angularjs Application - Kids Alphabets Tutor

0.00/5 (No votes)
9 Jul 2015 1  
Developed Kids Alphabets Tutor using ng-repeat, ng-bind, ng-hide, setTimeout in AngularJS

Introduction

This code displays the content in an array collection with a certain time delay. The tip helps newbies in AngularJs. The code demonstrates the usage of ng-repeat, ng-bind, ng-hide. The array is stored in $scope.letters and the setTimeout in the $scope.testname function sets some delay before the div binds the data to itself.

Background

Using AngularJs, we can build the rich client UI. This is one of the mostly used Single page applications in the current web application development.

Using the Code

In the array $scope.letters, we intialized the alphabets to display.

$scope.letters = ['A-Apple', 'B-Ball', 'C-Cat', 'D-Dog', 
'E-Elephant', 'F-Frog', 'G-Girafee', 'H-Horse'];

setTimeout function will set the delay time using the $scope.$apply() in it and finally the value is returned by the $scope.testname to the ng-bind.

<div ng-bind="testname(letter)"> </div>
$scope.testname = function (letter) {
                setTimeout(function () {
                    $scope.test = letter;
                    $scope.$apply();
                }, time);
                time = time + 2000;
                return letter;
            }

Below is the final piece of code to achieve the task.

<html>
<head>
    <title>Angular.js Example</title>
    <script src="Scripts/angular.js"></script>
    <script>
        var nameApp = angular.module('NameApp', []);
        nameApp.controller('NameCtrl', function ($scope) {
            // I initialized only till alphabet 'H'.. Add more if you are topper in LKG.
            $scope.letters = ['A-Apple', 'B-Ball', 'C-Cat', 
            'D-Dog', 'E-Elephant', 'F-Frog', 'G-Girafee', 'H-Horse'];
            var time = 0;
            $scope.testname = function (letter) {
                setTimeout(function () {
                    $scope.test = letter;
                    $scope.$apply();
                }, time);
                time = time + 2000;
                return letter;
            }
        });
    </script>
</head>
<body ng-app="NameApp" ng-controller="NameCtrl">
    <center>
        <h1>Kids Alphabet Tutor</h1><br />
        <div ng-hide="letter" ng-repeat="letter in letters">
            <div ng-bind="testname(letter)"> </div>
        </div>
        <h1>
            {{test}}
            <img src="Images/{{test}}.PNG" 
            width="75px" height="75px" />
        </h1>
    </center>
</body>
</html>

Points of Interest

  • Image file Name should be the array element names initialized in the $scope.letters.
  • $scope.$apply() is a must and should be there to work setTimeout.

How It Looks

Reference link: http://dotnetselflearning.blogspot.in/2015/06/using-settimeout-function-in-angularjs.html

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here