我将此代码作为整个页面的全局代码:
<script type="text/javascript">
var data = [];
var VM_FiltroSeguros =
{
seguros: ko.observableArray(data)
};
ko.applyBindings(VM_FiltroSeguros.seguros);
</script>
然后当进行成功的ajax调用时,执行以下命令:
function okFiltrarSeguros(data)
{
var parsedData = parse(data);
if (parsedData.Ok)
{
toastr.success('Se encontraron ' + parsedData.Value.length.toString() + ' Seguros.');
$('#liResultsFiltroSeguro').show();
VM_FiltroSeguros.seguros = parsedData.Value;
};
Html就是这些:
<table class="table table-hover">
<thead>
<tr>
<th>Ramo</th>
<th>Poliza</th>
</tr>
</thead>
<tbody data-bind="foreach: seguros">
<tr>
<td><span data-bind="text: NroRamo"></span></td>
<td><span data-bind="text: NroSeguro"></span></td>
</tr>
</tbody>
</table>
VM_FiltroSeguros.seguros = parsedData.Value之后;执行我可以在调试器中看到viewModel是用对象填充的,但是永远不会更新。 可能有什么不对?感谢!!!!
答案 0 :(得分:4)
这里有一些你做错的事情。首先,您需要绑定整个ViewModel:
var data = [];
var VM_FiltroSeguros =
{
seguros: ko.observableArray(data)
};
ko.applyBindings(VM_FiltroSeguros);
然后你需要通过这样的函数调用将数据添加到'seguros'属性:
VM_FiltroSeguros.seguros(parsedData.Value);