2

私はこのコードをページ全体のグローバルとして持っています:

<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がオブジェクトで埋められていることがわかりますが、が更新されることはありません。何が間違っている可能性がありますか?ありがとう!!!!

4

1 に答える 1

4

ここで間違っていることがいくつかあります。まず、ViewModel全体をバインドする必要があります。

var data = [];
var VM_FiltroSeguros =
{
   seguros: ko.observableArray(data)
};
ko.applyBindings(VM_FiltroSeguros);

次に、次のような関数呼び出しを使用して、「seguros」プロパティにデータを追加する必要があります。

VM_FiltroSeguros.seguros(parsedData.Value);
于 2012-12-04T23:27:59.260 に答える