首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-repeat ng ng-repeat-start

ng-repeat ng ng-repeat-start
EN

Stack Overflow用户
提问于 2013-12-23 00:08:03
回答 2查看 3.3K关注 0票数 1

一个angularJS的初学者,当在ng-repeat-start中尝试ng-repeat时,页面会间歇性地断开,并在浏览器中显示angularjs代码。

代码语言:javascript
复制
<table>
   <tr ng-repeat-start="(key, value) in obj">{{key}}</tr>
   <tr ng-repeat="v in value">
      <div>{{v.address}}</div>
      <div>{{v.mobile}}</div>
   </tr>
   <tr ng-repeat-end></tr>
</table>

正在尝试确定这将如何在浏览器中工作。有人知道这段代码会崩溃的原因是什么吗?

obj模型结构:

代码语言:javascript
复制
{"name1":
  [{
    "address":"",
    "mobile":""
  },{
    "address":"",
    "mobile":""
  }],
"name2":
  [{
    "address":"",
    "mobile":""
  },{
    "address":"",
    "mobile":""
  }]
}

忘记提到间歇性接收到的错误:http://docs.angularjs.org/error/$compile:uterdir?p0=ng-repeat-start&p1=ng-repeat-end

到目前为止找到的解决方案

在ng-repeat-start like中使用了嵌套的ng-repeat,而不是ng-repeat

代码语言:javascript
复制
<table>
   <tr ng-repeat="(key, value) in obj">
       <td>{{key}}</td>
       <td>
           <table>
               <tr ng-repeat="v in value">
                  <div>{{v.address}}</div>
                  <div>{{v.mobile}}</div>
               </tr>
           </table>    
       </td>
   </tr>
</table>
EN

回答 2

Stack Overflow用户

发布于 2013-12-23 00:24:56

你提到“间歇性的分页”,这里的关键可能是“间歇性的”--这意味着你得到了FOUC (无样式内容的flash)。找到答案的一个地方是Angular Tips and Tricks,这是一个不断更新的各种整洁事物的集合。对于FOUC,Sofer建议尝试ng-bind或ng-cloack。我不确定哪种方法可以在这里工作(还有其他技巧),但是你可以从检查documentation on ng-cloak开始。这至少可以为您指明一个正确的方向,告诉您如何在所有内容都编译完成之前保持ng-repeat不起作用(显示)。

票数 0
EN

Stack Overflow用户

发布于 2014-11-14 20:47:24

前几天我也在寻找同样的东西来动态创建一个包含X行和Y列的表。这是我想出来的: JS:

代码语言:javascript
复制
var MainCtrl = function() {
  this.rows = (function() {
    var x = 10;
    var y = 10;
    var rowArr = [];
    for (var i = 0; i < x; i++) {
      var cellArr = {
        cells: []
      };
      for (var j = 0; j < y; j++) {
        var cell = {};
        cell.x = j;
        cell.y = i;
        cellArr.cells.push(cell);
      }
      rowArr.push(cellArr);
    }
    return rowArr;
  })();
};
angular
  .module('app', [])
  .controller('MainCtrl', MainCtrl);

HTML:

代码语言:javascript
复制
<table>
  <tbody ng-controller="MainCtrl as main">
    <tr ng-repeat="row in main.rows">
      <td ng-repeat="cell in row.cells" x="{{cell.x}}" y="{{cell.y}}">        
      </td>
    </tr>
  </tbody>
</table>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20731309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档