focusOnLoad

Giving focus on load

by long2know

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-animate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-loader.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-cookies.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-touch.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.1/ui-bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.1/ui-bootstrap-tpls.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.13/angular-ui-router.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui-ieshiv.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css">
<div ng-include="'menu.html'"></div>
<div ui-view="main"></div>

<script type="text/ng-template" id="modalComment.html">
    <div class="modal-body">
        <h3>Leave a Comment!</h3>
        <p>
            <textarea id="note" name="note" type="text" class="input primary form-control form-control-inline" placeholder="Notes"
                      ng-model="mf.note" ng-required="false" autocomplete="off" focus-on-load />
        </p>
    </div>
    <div class="modal-footer">
        <input class="btn" type="button"...

CSS

.modal-dialog {
    margin-top: 20px;
}

JavaScript

(function () {
    angular.module('myApp.services', ['ngResource', 'ngAnimate']);
    angular.module('myApp.controllers', []);
    angular.module('myApp.directives', []);

    var myApp = angular.module('myApp', [
        'myApp.services',
        'myApp.controllers',
        'myApp.directives',
        'ngSanitize',
        'ui.bootstrap',
        'ui.router',
        'ui']);

    var focusOnLoad = function ($timeout) {
        var directive = {
            restrict: 'AC',
            link: function (scope, element) {
                $timeout(function () {
                    element[0].focus();
                }, 10);
            }
        };
        return directive;
    };

    focusOnLoad.$inject = ['$timeout'];
    angular.module("myApp.directives")
        .directive('focusOnLoad', focusOnLoad);

    var dialogService = function ($sce, $q, $modal) {
        // Generic wrapper around modal opening
        function openDialog(template, controller, size) {
            return $modal.open({
                templateUrl: template,
                controller: controller,
                size: size
            });
        }

        function openDialogWithModel(templateUrl, controller, model, windowClass, isInlineHtml, size) {
            if (!size) {
                size = 'sm';
            }
            if (isInlineHtml) {
                return $modal.open({
                    controller: controller,
                    template: templateUrl,
                    resolve: {
                        dialogModel: function () {
                            return model;
                        }
                    },
                    windowClass: windowClass,
                    size: size
                });
            } else {
                return $modal.open({
                    controller: controller,
                    templateUrl: templateUrl,
                    resolve: {
                        dialogModel: function () {
                           ...