【发布时间】:2015-05-29 18:47:21
【问题描述】:
我有一个我一直在研究的查询工具,它有一个已填写的角度表单,然后在提交时使用 AJAX 返回 JSON,然后将其呈现为 ui-grid,即 JSON响应看起来像
{
"success": true,
"message": "",
"columns": ["first_name", "last_name", "company", "employed"]
"results": [
{first_name: "John", last_name: "Smith", company: "Abc Inc", employed: true},
{first_name: "Johnny", last_name: "Rocket", company: "Abc Inc", employed: true}]
}
我正在研究 PHP 和 Angular,因此如果需要,我可以完全控制这个 JSON 响应。当呈现来自第一个 AJAX 调用的 JSON 响应时,我遇到了一个问题,然后我在同一页面上运行另一个单独的 AJAX 调用并获取新数据集:这个新数据集不会呈现任何不在原始数据集中的列。这是一个很大的问题,因为当所有列都不相同时,表格基本上被清除了,而且我经常需要在这个单页应用程序中将完全不同的数据加载到 ui-grid 中。
收到 JSON 后,我只需将 jsonResult.results 绑定到 ui-grid 绑定到的旧 $scope.myData 变量。
我已经 a plunker 隔离了这个问题。加载具有“朋克”列的数据集,然后单击“交换数据”将尝试加载具有“员工”列而不是“朋克”的数据集。到目前为止,我已经研究了在 $scope.myData 变量使用 $watch 更改时将刷新或重新加载的指令,并寻找类似 $scope.columnDefs 的东西来让 ui-grid 知道。 Angular 和 javascript 相对较新,所以指令仍然让我有点头疼。
【问题讨论】:
标签: javascript ajax angularjs angular-ui angular-ui-grid