smart-table 动作清空我的 table

smart-table actions empties my table

我遵循了文档中描述的所有步骤,我通过 bower 安装了 smart-table,然后我在 index.html 引用了脚本,然后我将模块添加到我的子程序之一模块,我创建了 table:

<table st-table="vm.product_conditions" class="table">
    <thead>
    <tr>
        <th st-sort="name">Nombre</th>
        <th st-sort="description">Descripcion</th>
        <th st-sort="status">Estado</th>
    </tr>
    </thead>
    <tbody>
    <tr ng-repeat="condition in vm.product_conditions track by condition.id"
        ng-click="vm.detailProductCondition(condition.id, condition.name)">
        <td>{{ condition.name }}</td>
        <td>{{ condition.description }}</td>
        <td>{{ condition.status ? 'Activa' : 'Inactiva' }}</td>
    </tr>
    </tbody>
</table>

table 被填充,但每当我点击该列进行排序时, table 变空,我也尝试实现全局搜索,结果相同,空 table...

此外,我没有得到任何错误输出,我试图在一个 plunker 中重现错误,但令我惊讶的是它在那里工作......

有什么调试方法吗?

您是否正在异步加载数据?如果是,则需要有两个集合,一个是显示的集合,另一个包含 table.

的所有项目

Smart Table 具有 st-safe-src 的数据属性。

我认为您的 table 会 return 一个空白结果的唯一方法是 product_conditions 集合是否以某种方式被解释为空白或未定义。

我会尝试在排序 table 之前和之后将集合注销到控制台,并确认集合是否相同。

原因(来自文档):

smart-table first creates a safe copy of your displayed collection: it creates an other array by copying the references of the items. It will then modify the displayed collection (when sorting, filtering etc) based on its safe copy. So if you don't intend to modify the collection outside of the table, it will be all fine. However, if you want to modify the collection (add item, remove item), or if you load your data asynchronously (via AJAX-Call, timeout, etc) you will have to tell smart-table to watch the original collection so it can update its safe copy. This is were you use the stSafeSrc attribute