다음 질문에서 언급했듯이 : How do I pass an ID from View to the ViewModel as a parameter for GET function? MVC4, knockoutJS, 웹 API, 부트 스트랩, MSSQL Server 2012를 사용하여 MVC 응용 프로그램을 개발하고 있습니다. 등등. 나는 테이블을 만들고이를 knockoutJS를 사용하여 DB의 데이터로 바인딩하기 위해 DataTables jQuery 라이브러리를 사용하고있다. 다음과 같은 두 가지 문제가 발생합니다. data-bind = "foreach : regionsListModel.regions"로 테이블을 바인딩하면 내 테이블이 채워지지만 끝에 "No data in the table"행이 추가됩니다. "0에서 0의 결과 표시 0"이라는 페이지 바닥 글, 페이지 매김 없음, 결과를 필터링하려고 할 때 테이블을 완전히 비 웁니다. 헤더가있는 열을 정렬 할 때도 마찬가지입니다.DataTables + KnockoutJS : "테이블에 데이터가 없습니다"및 정렬 문제
코드 스 니펫을 다시 게시합니다.
의 ViewModel : 뷰에 대한
var regionsModel = {
regionId: ko.observable(),
companyId: ko.observable(),
name: ko.observable(),
companyName: ko.observable()
};
var regionsListModel = {
regions: ko.observable()
};
function getRegions() {
get(apiUrl + "Regions/GetRegions", {}, function (data) {
regionsListModel.regions(data);
});
}
function getRegion() {
get(apiUrl + "Regions/GetRegion", { aiId: regionsModel.regionId() }, function (data) {
regionsModel.regionId(data.RegionID);
regionsModel.companyName(data.CompanyName);
regionsModel.companyId(data.CompanyID);
regionsModel.name(data.Name);
});
}
function viewRegion() {
$("#ViewRegionModal").modal('show');
//regionsModel.regionId($('#ViewRegion').val());
getRegion();
return false;
}
코드 :
<table class="table table-striped table-bordered responsive" id="dtable">
<thead>
<tr>
<th style="width: 20px;">ID</th>
<th>Region Name</th>
<th>Company Name</th>
</tr>
</thead>
<tbody data-bind="foreach: regionsListModel.regions">
<tr id="ViewRegion" data-toggle="modal" data-bind="click: viewRegion, value: RegionID">
<td data-bind="text: RegionID"></td>
<td data-bind="text: Name"></td>
<td data-bind="text: CompanyName"></td>
</tr>
</tbody>
</table>
문제의 사진 : 어떤 도움을 주시면 감사하겠습니다 http://i.imgur.com/CNRnRlW.png
!
편집 : getRegions (Regions.js 파일에 있고 ViewModel은 RegionsData.js에 있으며 페이지가로드 될 때로드 됨)를 호출하는 코드를 추가하십시오. 사람이 내가했던 것처럼 같은 문제에 오면
$(function() {
ko.applyBindings(regionsModel);
getRegions();
getCompanies();
$("#NewRegionButton").click(function() {
$("#NewRegionModal").modal('show');
return false;
});
$("#ViewRegion").click(function() {
$("#ViewRegionModal").modal('show');
return false;
});
$("#NewRegionModalClose").click(function() {
clearFields();
$("#NewRegionModal").modal('hide');
return false;
});
$("#NewRegionSave").click(function() {
newRegion();
$("#NewRegionModal").modal('hide');
return false;
});
$("#ViewRegionClose").click(function() {
$("#ViewRegionModal").modal('hide');
return false;
});
$("#ViewRegionEdit").click(function() {
$("#ViewRegionModal").modal('hide');
$("#EditRegionModal").modal('show');
return false;
});
$("#RegionUpdateSave").click(function() {
updateRegion();
$("#EditRegionModal").modal('hide');
return false;
});
$("#ViewRegionEditClose").click(function() {
clearFields();
$("#EditRegionModal").modal('hide');
return false;
});
})
무엇이 당신의 질문입니다. – Damien
글쎄, 내가 언급 한 두 가지 문제를 해결하기위한 방향을 찾고있다. –
'getRegions'는 결코 호출되지 않는 것으로 보입니다. 또한,'getRegion'은'regionsModel'의 값을 설정하는 유일한 것으로 보이지만,로드되는 URL은 그 값들 중 하나에 의존합니다. – ebohlman