Rev 1576 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1576 | jmachado | 1 | <!DOCTYPE html> |
2 | <html> |
||
3 | <head> |
||
4 | <script src="<%=request.getContextPath()%>/js/angularjs/1.4.8/angular.min.js"></script> |
||
5 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/bootstrap/js/bootstrap.js"></script> |
||
6 | <link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap.css" type="text/css"/> |
||
7 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery-2.1.4.min.js"></script> |
||
8 | </head> |
||
9 | <body ng-app="BacoAngularApp"> |
||
10 | <script> |
||
11 | var GLOBAL_BacoAngularAppDependencies = []; |
||
12 | angular.module('BacoAngularApp', GLOBAL_BacoAngularAppDependencies); |
||
13 | </script> |
||
14 | |||
15 | <div class="container"> |
||
16 | <h1>Exemplo de Biding entre uma caixa de texto e uma view</h1> |
||
17 | <p> |
||
18 | Sempre que a caixa de texto é alterada a view muda. Pode-mos por exemplo |
||
19 | aguardar por uma resposta em json de um Widget e usar o json para preencher o |
||
20 | input field para mais tarde enviar ao Controlador de Struts como texto. |
||
21 | Entretanto podemos prencher uma View com esse input. |
||
22 | </p> |
||
23 | |||
24 | <div id="myApp1" ng-app="myApp1" ng-controller="myCtrl1"> |
||
25 | |||
26 | <p>Experimente a copiar este pedaço de JSON e a colar no input:</p> |
||
27 | |||
28 | <pre>{"uploadedFiles" : [ {"fileName":"teste3.zip"}, {"fileName":"teste4.zip"} ]}</pre> |
||
29 | |||
30 | <div class="row clearfix"> |
||
31 | <div class="form-group"> |
||
32 | <div class="col-md-2"> |
||
33 | <label class="control-label">Exemplo de JSON associado onchange à view:</label> |
||
34 | </div> |
||
35 | <div class="col-md-10"> |
||
1577 | jmachado | 36 | <input class="form-control" type="text" id="ModeloBaseMsgInput" value="" /> |
1576 | jmachado | 37 | </div> |
38 | </div> |
||
1577 | jmachado | 39 | |
40 | <div class="form-group"> |
||
41 | <div class="col-md-2"> |
||
42 | <label class="control-label">Exemplo de JSON autoUpdate associado ao modelo da view:</label> |
||
43 | </div> |
||
44 | <div class="col-md-10"> |
||
45 | <input class="form-control" readonly="true" type="text" id="ModeloBase" value="{{files}}" /> |
||
46 | </div> |
||
47 | </div> |
||
1576 | jmachado | 48 | </div> |
49 | |||
50 | <!-- ZONA DE VIEW --> |
||
51 | <div class="row"> |
||
52 | <h2>VIEW ANGULAR</h2> |
||
53 | <div class="list-group col-md-4"> |
||
54 | <div class="list-group-item clearfix" ng-repeat="f in files.uploadedFiles"> |
||
55 | {{ f.fileName }} |
||
56 | </div> |
||
57 | </div> |
||
58 | </div> |
||
59 | |||
60 | <!-- ZONA DE VIEW COM AFETACAO INVERSA --> |
||
61 | <div class="row"> |
||
62 | <h2>VIEW ANGULAR COM AFETAÇÃO NO MODELO</h2> |
||
63 | <div class="list-group col-md-4"> |
||
64 | <div class="list-group-item clearfix" ng-repeat="f in files.uploadedFiles"> |
||
65 | <input type="text" ng-model="f.fileName"/> |
||
66 | </div> |
||
67 | </div> |
||
68 | </div> |
||
69 | |||
70 | </div> |
||
71 | <script> |
||
72 | |||
73 | |||
74 | //Especifico da aplicacao |
||
75 | var app1 = angular.module('myApp1', []); |
||
76 | GLOBAL_BacoAngularAppDependencies.push('myApp1'); |
||
77 | |||
78 | app1.controller('myCtrl1', function($scope) { |
||
79 | $scope.files = { service: "ok" , "uploadedFiles" : [ {"fileName":"0000.zip"} ]} |
||
80 | }); |
||
81 | |||
82 | //Vamos programar a mudança da variavel para mudar a lista de items |
||
83 | $(document).ready(function() |
||
84 | { |
||
1577 | jmachado | 85 | $("#ModeloBaseMsgInput").change(function() |
1576 | jmachado | 86 | { |
1577 | jmachado | 87 | var uploadedIncomingJson = JSON.parse($("#ModeloBaseMsgInput").val()); |
1576 | jmachado | 88 | |
89 | angular.element($("#myApp1")).scope().files.uploadedFiles = uploadedIncomingJson.uploadedFiles; |
||
90 | //SEMPRE QUE SE ALTERA UM modulo de fora para dentro temos de invocar |
||
91 | // o $apply socre o scope para alterar a view |
||
92 | angular.element($("#myApp1")).scope().$apply(); |
||
93 | |||
94 | }); |
||
95 | }); |
||
96 | </script> |
||
97 | |||
98 | </div> |
||
99 | </div> |
||
100 | |||
101 | </body> |
||
102 | </html> |