Javascript AngularJS:如何在模板内部设置变量?

Javascript AngularJS:如何在模板内部设置变量?,javascript,angularjs,ng-init,Javascript,Angularjs,Ng Init,如何避免第三行中的{{f=…}语句打印出预测[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=…}
语句打印出
预测[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>

{{$index}}-{{day.iso}}-{{day.name}
{{f=forecast[day.iso]}
温度:{f.Temperature}}
湿度:{{f.湿度}}
...
使用ngInit


{{$index}}-{{day.iso}}-{{day.name}
温度:{f.Temperature}}
湿度:{{f.湿度}}
...
示例:

它是,但它也是一个选项:因为您可以连接多个表达式,但只呈现最后一个表达式,所以您可以使用
完成表达式,并且您的变量将被隐藏

因此,您可以使用以下方法定义变量:

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

如果需要多个变量,只需用分号“;”将它们分开即可给新手的提示。。。根据模板结构的不同,最终的结果可能是所有记录只显示变量的最后一个值(在我的例子中,Angular更新了后续摘要循环中的替换,因为它们都绑定到同一个表达式)!为了解决这种情况,您可以将该变量指定为正在迭代的当前记录的属性(如果对您的用例可行的话)。在上面的示例中,这将变成
ng init=“day.f=forecast[day.iso]”
这可能不是一个答案,但有用的提示是使用{{{f=forecast[day.iso];“}}}”,因为它不会在视图上打印任何内容。这是一个有文档记录的功能吗?@DanielF,我找不到。我只是看到了评论,测试了这个想法,喜欢它,并决定添加它作为答案,因为它更具可见性,更难丢失。@DanielF,刚刚发现这个高投票率的人提出了相同的解决方案。它也没有文档链接。@DanielF,我已经更新了我的答案。我不得不要求更好地理解它。这不是一个特别的功能。只是连接表达式的行为。当您希望将表达式绑定到范围更改,而不是在init上运行一次时,这种技巧尤其有用。
{{f = forecast[day.iso]; ""}}