AngularJS:如何在模板中设置变量?

时间:2013-05-21 08:25:49

标签: javascript angularjs ng-init

如何避免让第三行中的{{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>

2 个答案:

答案 0 :(得分:178)

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

答案 1 :(得分:31)

它是not the best answer,但它也是一个选项:因为您可以连接多个表达式,但只渲染最后一个表达式,您可以使用""完成表达式,并隐藏您的变量。< / p>

因此,您可以使用以下内容定义变量:

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