AngularJS: How to set a variable inside of a template?
JavascriptAngularjsNg InitJavascript Problem Overview
How can I avoid having the {{f = ...}}
statement in the third line print out the content of forecast[day.iso]
?
I want to avoid using forecast[day.iso].temperature
and so on for every iteration.
<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>
Javascript Solutions
Solution 1 - Javascript
Use 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>
Example: http://jsfiddle.net/coma/UV4qF/
Solution 2 - Javascript
It's not the best answer, but its also an option: since you can concatenate multiple expressions, but just the last one is rendered, you can finish your expression with ""
and your variable will be hidden.
So, you could define the variable with:
{{f = forecast[day.iso]; ""}}