Subversion Repositories bacoAlunos

Rev

Blame | Last modification | View Log | RSS feed

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %>
<html>
<head></head>
<body ng-app="BacoAngularApp">
    <jsp:include page="/layout/themes/scripts-default.jsp"/>
    <jsp:include page="/layout/headerTools.jsp"/>


    <div id="demoApp" ng-app="demoApp" ng-controller="demoAppController">


        <h1>Uso de Directivas com Templates</h1>
        <p>Este exemplo mostra como deve ser usada uma template para podermos incluir uma função
        de controlo especifica da template usando directivas</p>
        <p>Mostra ainda que dentro da template o scope é uma fusão dos scopes da ngApp e da propria directiva</p>
        <p>Mostra também como podemos escolher dinamicamente a template ou as funcionalidades dependendo de atributos que passamos à template</p>
        <script>

            var demoApp = angular.module('demoApp', []);
            GLOBAL_BacoAngularAppDependencies.push('demoApp');


            //demoApp..directive('tpl', function() {
            //ou
            angular.module('demoApp').directive('tpl', function() {

                return {
                    restrict: 'E', //A ou E define se é o nome do elemento ou um atributo
                    link: function(scope, element, attrs) {
                        // concatenating the directory to the ver attr to select the correct excerpt for the day



                        scope.teste = "teste";
                        scope.move = function(){

                            scope.teste = "teste2";
                            scope.testeSuper = "testeSuper2";
                        }
                    },
                    // passing in contentUrl variable
                    templateUrl: function(elem,attrs) {
                        return attrs.templatename;
                    }
                }
            });


            demoApp.controller('demoAppController',  function ($scope) {


                        $scope.testeSuper = "testeSuper";

                }
            );

        </script>

        <p>campo testeSuper no mainmodule {{testeSuper}}</p>

        <p>Se incluirmos o tpl2.html apenas vamos ter acesso às variaveis do scope da aplicação, neste caso o teste, a template pode estar declarada fora da app, não há problema</p>
        <p>Por acaso neste exemplo temos acesso ao testeSuper porque a directiva adiciona funcionalidade ao scope da aplicação onde é chamada, mas se não chamarmos nenhuma directiva
        a var testeSuper não aparece</p>
        <div ng-include="'tpl2.html'"></div>


        <h2>Invocando a tpl de html com directiva</h2>
        <tpl templatename="tpl.html"></tpl>

        <h2>Invocando a tpl de de javascript com directiva</h2>
        <tpl templatename="tpl2.html"></tpl>






    </div>



    <!--TEMPLATE RECURSIVO-->
    <script type="text/ng-template" id="tpl2.html">
        <div>
            <h1>Usando um template de Script</h1>
            <p>TESTE</p>
            <p>{{teste}}</p>
            <p>{{testeSuper}}</p>
            <button ng-click="move()">Muda Textos</button>
        </div>
    </script>
</body>
</html>

Generated by GNU Enscript 1.6.5.2.