web-dev-qa-db-ja.com

AngularJS:テンプレート内で変数を設定する方法は?

3行目の{{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>
85
Daniel F

使用ngInithttps://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/

181
coma

最良の答えではありません ですが、オプションでもあります:複数の式を連結できますが、最後の式のみがレンダリングされるため、式を""で終了でき、変数は隠された。

したがって、次のように変数を定義できます。

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