【问题标题】:Angular 1.x ng-repeat shows data while straight template binding doesn't displayAngular 1.x ng-repeat 显示数据,而直接模板绑定不显示
【发布时间】:2016-12-27 01:41:42
【问题描述】:

这个ng-repeat 显示数据但不显示{{ ...}}

ng-repeat有效

<div ng-repeat="x in confirm.booking.flightData">
    {{x.DestinationAirport}}
</div>

模板绑定不起作用

{{confirm.booking.flightData.DestinationAirport}}

这是因为数据数组吗?

console.log 显示了这个

confirm.booking > Object { flightData: Array[2], travelers: Array[1]

我所追求的也将是 flightData Array Object 0 中的数据

下图

示例我想在每张图片的Segments 中显示数据,Segments 是一个数组[2]

{{confirm.booking.flightData[1].Segments[0].FlightNumber}}

我不相信上面会起作用,但是根据我的 javascript 对象的图片,我需要做什么?

【问题讨论】:

  • 你试过
    吗?
  • “这是因为数据数组” ...是的...数组不能有像DestinationAirport 这样的属性。在您的情况下,数组内的对象具有该属性
  • @EmilianoBarboza ng-bind 能帮我做什么?

标签: javascript angularjs arrays json angularjs-ng-repeat


【解决方案1】:

很明显{{confirm.booking.flightData.DestinationAirport}} 不能工作,因为flightData 是一个数组

你检查了{{confirm.booking.flightData[1].Segments[0].FlightNumber}} - 因为它会工作。请看下面的演示:

angular.module("app", []).controller("ctrl", function($scope) {
  $scope.array = [{key:[1, {key: 'value2'},3]}, {key: 'value1'}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div class="wrapper" ng-app="app" ng-controller="ctrl">
  <div>{{array[0].key[1].key}}</div>
</div>

【讨论】:

  • 根据其他人的评论,我怎样才能更好地维护 angular/javascript 数据?我不喜欢这个{{confirm.booking.flightData[0].Segments[0].FlightNumber}}
  • 您应该使用ng-repeat 本身并使用ng-if过滤器(如自定义搜索过滤器/limitTo 过滤器)使用上下文条件来显示数据...
【解决方案2】:
  1. 如果您的 ng-repeat 循环显示数据并且绑定 {{ }} 不是,那么是的,您根本没有查看数组。
  2. 根据您的数据,您似乎已经有了答案!您没有向我们展示您所有的细分数据,但如果有 FlighNumber,那么

    {{confirm.booking.flightData[1].Segments[0].FlightNumber}}
    

应该工作!

您最好考虑最佳实践,因为维护起来不会那么棒......

干杯

【讨论】:

  • 我怎样才能更好地维护它?
猜你喜欢
相关资源
最近更新 更多
热门标签