Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度模板神秘地只显示某些{{表达式}_Javascript_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Javascript 角度模板神秘地只显示某些{{表达式}

Javascript 角度模板神秘地只显示某些{{表达式},javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我用的是AngularJSV。1.2.26我花了几个小时试图弄明白为什么我不能在视图中显示某些表达式 下面是一个完整的、最少的示例(或JSFIDLE): 哪个输出这个 测试1显示预期值两次(因为循环中有两项)。然后在测试2中只有一次迭代,只出现中间值。上述代码中没有发现问题。在TR或TD中重复ng没有什么问题。更可能是控制器或代码中的其他地方出了问题 我创建了一个示例,其中显示了一个示例,显示的数据尽可能接近您问题中的数据结构。它很好用 <table ng-controller="myC

我用的是AngularJSV。1.2.26我花了几个小时试图弄明白为什么我不能在视图中显示某些表达式

下面是一个完整的、最少的示例(或JSFIDLE):

哪个输出这个


测试1显示预期值两次(因为循环中有两项)。然后在测试2中只有一次迭代,只出现中间值。

上述代码中没有发现问题。在TR或TD中重复ng没有什么问题。更可能是控制器或代码中的其他地方出了问题

我创建了一个示例,其中显示了一个示例,显示的数据尽可能接近您问题中的数据结构。它很好用

<table ng-controller="myCtrl" border=1>
 <tr ng-repeat="stop in block.stops">
  <td ng-repeat="vehicle in stop.vehicles">
      <dl>
          <dt>Mode:</dt><dd>{{ stop.mode }}</dd>
          <dt>Class:</dt><dd>{{ block.display_class }}</dd>
          <dt>Number:</dt><dd>{{ vehicle.vehicle_number }}</dd>
      </dl>
    </td>
</tr>
</table>

模式:{stop.Mode}
类:{block.display_Class}
编号:{vehicle.vehicle\u Number}
编辑
我帮你安排了工作。您不能期望Angular在格式错误的HTML上正常工作。你不能像那样用div来包装tr。即使Angular可以工作,但谁知道某些浏览器会如何处理它呢。您可能会在表格后弹出数据。表格呈现是HTML中相当严格的部分之一。

您需要添加完整的代码块。不确定为什么要混合TR和DIV。TR只能包含TH和TD。你在桌子里吗?@doogabides当然在。
块仅用于测试目的,因为问题似乎与所包围的标记有关(请参阅上面的更新#1)。上面的代码不是整个页面。只是整个标记页面中的相关片段。我也不明白。您认为控制器中存在什么样的问题?我知道数据是正确的,因为我可以在同一页的表格旁边打印相同的值。就像我说的,如果没有更多的代码,就不可能猜测。您使用过chrome或firefox调试工具吗?检查控制台是否有错误,使用inspector查看输出html的内容,看看是否有奇怪的地方。可能文本在那里,但一些html格式导致它无法显示。没有失败代码示例的所有猜测。控制台中没有错误。标记看起来有点奇怪,但我对Angular有点陌生,我不习惯在处理指令时添加/删除的一些标记。我会仔细看一看,试着找出一个最小的例子。一个新的线索:即使有多辆车,内部循环也只运行一次。我用一个最小的例子更新了这个问题,重现了这个问题。
<div ng-switch on="block.display_class">

  <div ng-switch-when="masstransit">

    <table>

      <div ng-repeat="stop in block.stops">

          <div ng-repeat="vehicle in stop.vehicles">

              <h2>Test 1</h2>
             {{ stop.mode }} 
             {{ block.display_class }} 
             {{ vehicle.vehicle_number }}

            <tr class="" id="">
              <td class="">

                <h2>Test 2</h2>

                 {{ stop.mode }} 
                 {{ block.display_class }} 
                 {{ vehicle.vehicle_number }}

              </td>

            </tr>

          </div><!-- ng-repeat -->         

      </div><!-- ng-repeat -->

    </table>

  </div> 

</div><!-- end ng-switch -->
<table ng-controller="myCtrl" border=1>
 <tr ng-repeat="stop in block.stops">
  <td ng-repeat="vehicle in stop.vehicles">
      <dl>
          <dt>Mode:</dt><dd>{{ stop.mode }}</dd>
          <dt>Class:</dt><dd>{{ block.display_class }}</dd>
          <dt>Number:</dt><dd>{{ vehicle.vehicle_number }}</dd>
      </dl>
    </td>
</tr>
</table>