我使用的是角度。js用于一个应用程序,该应用程序通过在下面的td中显示tr并向下滑动div,使用隐藏的tr来模拟滑出效果。这个过程使用击倒技术非常有效。js,因为我可以使用
对于angular,必须将ng repeat应用于html元素,这意味着我似乎无法使用标准方法重复这些双行。我对此的第一个反应是创建一个指令来表示这些双TR,但这还不够,因为指令模板必须有一个根元素,但我有两个(<代码>
如果有谁在ng重复和角度谁破解了这个可以解释如何解决这个问题的经验,我将不胜感激。
(我还应该注意到,将ng-重复
附加到tbody是一种选择,但这会产生多个tbody,我假设这对于标准超文本标记语言来说是不好的形式,尽管如果我错了请纠正我)
拥有多个元素可能是有效的,但如果您试图构建具有固定页眉/页脚的可滚动网格,则以下操作将不起作用。此代码假定以下CSS、jquery和AngularJS。
HTML
<table id="tablegrid_ko">
<thead>
<tr>
<th>
Product Title
</th>
<th>
</th>
</tr>
</thead>
<tbody ng-repeat="item in itemList">
<tr ng-repeat="itemUnit in item.itemUnit">
<td>{{itemUnit.Name}}</td>
</tr>
</tbody>
</table>
CSS为可滚动表格网格构建固定页眉/页脚
#tablegrid_ko {
max-height: 450px;
}
#tablegrid_ko
{
border-width: 0 0 1px 1px;
border-spacing: 0;
border-collapse: collapse;
border-style: solid;
}
#tablegrid_ko td, #tablegrid_ko th
{
margin: 0;
padding: 4px;
border-width: 1px 1px 0 0;
border-style: solid;
}
#tablegrid_ko{border-collapse:separate}
#tablegrid_ko tfoot,#tablegrid_ko thead{z-index:1}
#tablegrid_ko tbody{z-index:0}
#tablegrid_ko tr{height:20px}
#tablegrid_ko tr >td,#tablegrid_ko tr >th{
border-width:1px;border-style:outset;height:20px;
max-height:20px;xwidth:45px;xmin-width:45px;xmax-width:45px;white-space:nowrap;overflow:hidden;padding:3px}
#tablegrid_ko tr >th{
background-color:#999;border-color:#2c85b1 #18475f #18475f #2c85b1;color:#fff;font-weight:bold}
#tablegrid_ko tr >td{background-color:#fff}
#tablegrid_ko tr:nth-child(odd)>td{background-color:#f3f3f3;border-color:#fff #e6e6e6 #e6e6e6 #fff}
#tablegrid_ko tr:nth-child(even)>td{background-color:#ddd;border-color:#eaeaea #d0d0d0 #d0d0d0 #eaeaea}
div.scrollable-table-wrapper{
background:#268;border:1px solid #268;
display:inline-block;height:285px;min-height:285px;
max-height:285px;width:550px;position:relative;overflow:hidden;padding:26px 0}
div.scrollable-table-wrapper table{position:static}
div.scrollable-table-wrapper tfoot,div.scrollable-table-wrapper thead{position:absolute}
div.scrollable-table-wrapper thead{left:0;top:0}
div.scrollable-table-wrapper tfoot{left:0;bottom:0}
div.scrollable-table-wrapper tbody{display:block;position:relative;overflow-y:scroll;height:283px;width:550px}
Jquery绑定tbody的水平滚动,这不起作用,因为tbody在ng repeat期间重复。
$(function ($) {
$.fn.tablegrid = function () {
var $table = $(this);
var $thead = $table.find('thead');
var $tbody = $table.find('tbody');
var $tfoot = $table.find('tfoot');
$table.wrap("<div class='scrollable-table-wrapper'></div>");
$tbody.bind('scroll', function (ev) {
var $css = { 'left': -ev.target.scrollLeft };
$thead.css($css);
//$tfoot.css($css);
});
}; // plugin function
}(jQuery));
AngularJS开发人员@igor-minar在跨多个元素的ngular.jsng重复中回答了这个问题。
Miško Heverly最近通过ng repeat start和ng repeat end实施了适当的支持。此增强功能在1.0.7(稳定)和1.1.5(不稳定)之前尚未发布。
这现在在1.2.0rc1中可用。查看官方文档和John Lindquist的截屏。
在tbody
上使用ng-重复
似乎是有效的,请参阅这篇文章。
此外,通过html验证器进行的快速测试允许在同一个表中包含多个body元素。
更新:至少从Angular 1.2开始,有一个ng repeat start(ng重复开始)和ng repeat end(ng重复结束),允许重复一系列元素。有关更多信息,请参阅文档,并感谢@Onite的评论!
问题内容: 我将Angular.js用于通过隐藏trs通过显示tr并在下面的td中将div向下滑动来模拟滑出效果的应用程序。遍历这些行的数组时,此过程可以使用knockout.js出色地工作,因为我可以在两个tr元素之间使用。 使用angular时,必须将其应用于html元素,这意味着我似乎无法使用标准方法来重复这些双行。我对此的第一个响应是创建一个表示这些double tr的指令,但是由于指令模
我正试图用有棱角的材料做一个形状。此表单允许客户修改其个人数据(带有输入字段)。对于这种情况,我使用“mat form field”组件 但是也有一些字段他不能修改(比如他的名字)。对于这种情况,我不知道使用什么元素。我想要一些与材料设计兼容的,但我找不到。 这是我的密码: 有什么好主意吗? 谢啦
问题内容: 我正在努力解决一个特殊的用例。我在底部提供了一个jsfiddle代码段。 1. HTML表 我的HTML是一张桌子。指令必须应用于html元素。在我的用例中,这不能完成,因为ng-repeat的实例由double tr元素组成: AngularJS不提供语法ng- repeat注释(与KnockoutJS不同)。我在SO上发现了类似的问题。但是,用例包括在元素内附加HTML。我的工
我在模板中有一个自定义标签,它调用模板。属性将由作用域填充,然后调用正确的模板。 这首赞美诗有多个版本,根据星期几而定。我希望使用该指令来填充正确的
问题内容: 这个问题已经在这里有了答案 : 使用PDO插入多行 (1个答案) 4年前关闭。 我有数据库表:和 当前,唯一要插入类别表的函数与此类似: 我有一种形式来输入标题和插入URL图像的可能性。 通过单击提交标题,我要转到类别表,到目前为止,图像应该转到表图像,每个图像都有一个ID,但内部连接到该类别的ID。 桌子: 我无法正确执行此操作 我想要的结果示例: html表格 提交后 表类别: 表