【发布时间】:2015-02-22 07:35:10
【问题描述】:
在带有 WebApi 的 ASP.NET MVC 中使用 AngularJS。
我有这种情况:
- 从菜单中,我调用 MVC 操作
- 我渲染了一个视图。在这个视图中,我包含了带有 angularJS 代码的 .js 文件,在代码中我定义了一个函数。我定义后直接调用这个函数。
- 使用返回的数据我创建
- 我应用 DataTable (datatables.net) 来生成网格。
从第 1 点到第 3 点没问题,我得到了正确的行为。
问题是我在获取数据之前应用了数据表函数。我该如何解决这个问题?
有没有办法在函数'loadMyData'时调用下面标有“XXXXX”的代码
视图如下:
@section scripts
{
<script src="@Url.Content("~/MyScriptsBinding/SampleIndexViewModel.js")" type="text/javascript"></script>
}
<div data-ng-controller="SampleIndexViewModel">
<table class="table table-striped table-hover" id="sample_1">
<thead>
<tr>
<th>Column1</th>
<th>Column2</th>
</tr>
</thead>
<tbody ng-repeat="item in itemList">
<tr style="vertical-align: central">
<td>{{ item.Field1 }}</td>
<td>{{ item.Field2 }}</td>
</tr>
</tbody>
</table>
</div>
SampleIndexViewModel.js:
appMainModule.controller("SampleIndexViewModel", function ($scope, $http, viewModelHelper) {
$scope.itemList = [];
$scope.loadMyData = function () {
viewModelHelper.apiGet('api/mytest/list', null,
function (result) {
for (var i = 0; i < result.data.length; i++) {
$scope.customers = result.data;
}
});
}
$scope.applyTable = function () {
$('#sample_1').DataTable();
}
$scope.loadMyData();
$scope.applyTable(); // XXXXX
});
【问题讨论】:
-
请注意,您在
tbody上使用ng-repeat,这会导致重复tbody而不仅仅是行。您确定要为每一行重复整个tbody吗?
标签: c# .net asp.net-mvc angularjs asp.net-web-api