AngularJS: Как установить переменную внутри шаблона?
Как я могу избежать того, чтобы оператор {{f = ...}}
в третьей строке распечатывал содержимое forecast[day.iso]
?
Я хочу избежать использования forecast[day.iso].temperature
и т.д. для каждой итерации.
<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>
Ответы
Ответ 1
Используйте 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>
Пример: http://jsfiddle.net/coma/UV4qF/
Ответ 2
Это не лучший ответ, но его также вариант: поскольку вы можете конкатенировать несколько выражений, но только последний отображается, вы можете закончить свое выражение с помощью ""
и ваша переменная будет скрыта.
Итак, вы можете определить переменную с помощью:
{{f = forecast[day.iso]; ""}}