web-dev-qa-db-fra.com

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

Comment puis-je éviter d'avoir le {{f = ...}} déclaration à la troisième ligne affiche le contenu de 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>
85
Daniel F

Utilisez 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/

181
coma

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.

Donc, vous pouvez définir la variable avec:

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