\n\nAnalise o texto que é exibido no parágrafo quando esse script é executado.","inLanguage":"pt-BR","eduQuestionType":"Multiple choice","acceptedAnswer":{"@type":"Answer","text":"C) ATENÇÃO: Temperatura 30. No AngularJS, a dupla {{ ... }} faz a interpolação: ela pega os valores disponíveis no $scope e monta o texto final exibido na tela. Aqui, o controller \"temp\" define $scope.param1 como \"Temperatura\" e $scope.param2 como \"30\". Então a expressão {{ param1 + \" \" + param2 }} vira exatamente \"Temperatura 30\".\n\nTem um detalhe importante: o trecho \"ATENÇÃO:\" está fora da expressão Angular, então ele aparece literalmente no parágrafo, antes do resultado da concatenação. Por isso, o texto não fica só \"Temperatura 30\", nem some com o rótulo inicial. A página mostra a frase completa, com o conteúdo renderizado pelo framework.\n\nEm concursos, a banca gosta de testar essa leitura cuidadosa entre HTML puro e binding do Angular. Sempre que você vir {{ ... }}, pense: o Angular avalia a expressão e substitui pelo valor final. Como os dois campos foram preenchidos no controller, não há undefined nem vazio no meio do caminho.\n\nAssim, o texto exibido é \"ATENÇÃO: Temperatura 30\", que corresponde ao gabarito C."},"suggestedAnswer":[{"@type":"Answer","text":"A) undefined"},{"@type":"Answer","text":"B) ATENÇÃO:"},{"@type":"Answer","text":"D) param1:Temperatura param2:30"},{"@type":"Answer","text":"E) Temperatura 30"}]}← Questões de Programação
Programação · FGV · 2022
Questão comentada de Programação
No contexto do Angular, considere o script a seguir.
<body>
<p style="font-size:40px" ng-app="xpto"
ng-controller="temp">
ATENÇÃO: {{ param1 + " " + param2 }}
</p>
<script>
var app = angular.module("xpto", []);
app.controller("temp", function($scope) {
$scope.param1 = "Temperatura";
$scope.param2 = "30";
});
</script>
</body>
Analise o texto que é exibido no parágrafo quando esse script é executado.
A)undefined
Errada, porque as variáveis foram definidas no $scope e não ficam undefined.
B)ATENÇÃO:
Errada, porque o texto "ATENÇÃO:" aparece no HTML e não desaparece.
C)ATENÇÃO: Temperatura 30
Certa, pois o Angular substitui {{ param1 + " " + param2 }} por "Temperatura 30", mantendo o texto fixo antes da interpolação.
D)param1:Temperatura param2:30
Errada, porque a saída não mostra os nomes das variáveis, e sim seus valores.
E)Temperatura 30
Errada, porque falta o prefixo "ATENÇÃO:" que está escrito no parágrafo.
Gabarito: C
No AngularJS, a dupla {{ ... }} faz a interpolação: ela pega os valores disponíveis no $scope e monta o texto final exibido na tela. Aqui, o controller "temp" define $scope.param1 como "Temperatura" e $scope.param2 como "30". Então a expressão {{ param1 + " " + param2 }} vira exatamente "Temperatura 30".
Tem um detalhe importante: o trecho "ATENÇÃO:" está fora da expressão Angular, então ele aparece literalmente no parágrafo, antes do resultado da concatenação. Por isso, o texto não fica só "Temperatura 30", nem some com o rótulo inicial. A página mostra a frase completa, com o conteúdo renderizado pelo framework.
Em concursos, a banca gosta de testar essa leitura cuidadosa entre HTML puro e binding do Angular. Sempre que você vir {{ ... }}, pense: o Angular avalia a expressão e substitui pelo valor final. Como os dois campos foram preenchidos no controller, não há undefined nem vazio no meio do caminho.
Assim, o texto exibido é "ATENÇÃO: Temperatura 30", que corresponde ao gabarito C.