97 votes

AngularJS : Comment définir une variable à l'intérieur d'un modèle ?

Comment puis-je éviter d'avoir le {{f = ...}} dans la troisième ligne imprime le contenu du fichier forecast[day.iso] ?

Je veux éviter d'utiliser forecast[day.iso].temperature et ainsi de suite pour chaque itération.

<div ng-repeat="day in forecast_days">
  {{$index}} - {{day.iso}} - {{day.name}}
  {{f = forecast[day.iso]}}
  Temperature: {{f.temperature}}<br>
  Humidity: {{f.humidity}}<br>
  ...
</div>

197voto

Dagelf Points 458

Utilice ngInit : https://docs.angularjs.org/api/ng/directive/ngInit

<div ng-repeat="day in forecast_days" ng-init="f = forecast[day.iso]">
  {{$index}} - {{day.iso}} - {{day.name}}
  Temperature: {{f.temperature}}<br>
  Humidity: {{f.humidity}}<br>
  ...
</div>

Exemple : http://jsfiddle.net/coma/UV4qF/

39voto

Zanon Points 13171

C'est pas la meilleure réponse mais c'est aussi une option : puisque vous pouvez concaténer plusieurs expressions, mais que seule la dernière est rendue, vous pouvez terminer votre expression avec "" et votre variable sera cachée.

Ainsi, vous pourriez définir la variable avec :

{{f = forecast[day.iso]; ""}}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X