9

我正在尝试实现一个通用表格小部件(使用 KendoUI),并使用 AngularJS 完成数据绑定。表格小部件在 HTML 文件中看起来像这样(这里的小提琴:http: //jsfiddle.net/mihaichiritescu/ULN36/35/):

<div ng:controller="Tester">
    <gridview>
        <div data-ng-repeat="man in people">
            <gridviewcolumn datasource="name" man="man"></gridviewcolumn>
            <gridviewcolumn datasource="age" man="man"></gridviewcolumn>               
        </div>            
    </gridview>
</div> 

基本上,该表将有一个 ng-repeat,它将在对象列表中重复,并且对于每个对象,使用“gridviewcolumn”,我将在每一行下添加单元格。这样,我试图复制 KendoUI 表的结构,如下所示:

​​&lt;div id="grid">
<div class="k-grid-header"></div>
<div class="k-grid-content">
    <table>
        <colgroup></colgroup>
        <tbody>
            <tr>
                <td></td>
                <td></td>                
            </tr>          
        </tbody>
    </table>
</div>
<div class="k-pager-wrap k-grid-pager"></div>
<div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

因此,使用 ng-repeat,对于每个对象,我将动态添加一个新行,对于每一列,我将在最后添加的行上添加一个新单元格。不幸的是,我无法以正确复制 KendoUI 网格视图的内部结构的方式操作 ng-repeat 指令。我最终得到一个内部表结构,如下所示:

​&lt;div id="grid">
<div data-ng-repeat="man in people" class="ng-scope">
    <div datamember="name" man="man" class="ng-binding">name1</div>
    <div datamember="age" man="man" class="ng-binding">21</div>
</div>
<div data-ng-repeat="man in people" class="ng-scope">
    <div datamember="name" man="man" class="ng-binding">name2</div>
    <div datamember="age" man="man" class="ng-binding">25</div>
</div>
<div class="k-grid-header"></div>
<div class="k-grid-content">
    <table>
        <colgroup></colgroup>
        <tbody>
            <tr>
                <td></td>
                <td></td>                
            </tr>          
        </tbody>
    </table>
</div>
<div class="k-pager-wrap k-grid-pager"></div>
<div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

我想以某种方式将 ng-repeat 指令的内容放在表格的主体中,而不是在表格上方。有谁知道如何做到这一点?
我可以使用 jquery 将内容放入单元格中,但我仍然必须从表格主体上方删除/隐藏 ng-repeat 指令及其内容,如果没有一些丑陋的黑客,我不知道该怎么做。
另外,我不一定绑定到 KendoUI gridview,但它看起来比其他的更好看,并且它可能具有与其他 table 小部件相似的内部结构,所以我也会遇到其他小部件的相同问题。
你们对如何使用 AngularJS 实现通用表有一些想法/建议吗?我确实搜索了一些使用 AngularJS 完成的表格,但我没有找到具有良好功能和外观的东西。

4

2 回答 2

10

我创建了两个小提琴,它们将展示你想要实现的目标是如何完成的。第一个小提琴使用(http://jsfiddle.net/ganarajpr/FUv9e/2/)kendoui的网格......所以它的样式和显示是完整的。唯一需要注意的是,如果模型发生变化,它不会更新。这是因为 kendoui 先获取数据,然后根据一开始提供的模型生成所有 UI 元素。

另一种方法是使用 Kendo 的 UI (css) 并省略生成网格的代码。

http://jsfiddle.net/ganarajpr/6kdvC/1/

我相信这更接近你正在寻找的东西。它还演示了在表格中使用 ng-repeat。

希望这可以帮助。

于 2012-08-09T22:06:37.233 回答
-2

在 html5 中使用 contenteditable 将很容易为您提供帮助。

于 2013-04-24T01:49:41.890 回答