2016-11-05 8 views
0

Ich versuche, das beobachtbare Array aus den Antwortdaten zu aktualisieren. Ich bin sicher, ich habe etwas Einfaches verpasst, aber ich kann nicht herausfinden, warum es nicht funktioniert?Knockout js observableArray wird nicht aktualisiert

function addWitness() { 
 

 
    $.post("AddWintess", { 
 
    Witnesses: [{ 
 
     LastName: "test1", 
 
     FirstName: "test1", 
 
     MiddleName: "test1" 
 
    }, { 
 
     LastName: "test2", 
 
     FirstName: "test2", 
 
     MiddleName: "test2" 
 
    }] 
 
    }, function(data) { 
 
    my.viewModel.allItems = ko.observableArray(data.Witnesses); 
 
    }); 
 
} 
 
var my = { 
 
    viewModel: new WitnessesModel() 
 
} 
 

 
function WitnessesModel() { 
 
    var self = this; 
 
    self.allItems = ko.observableArray([]); 
 
    self.test = ko.computed(function() { 
 
    var result = ""; 
 
    self.allItems().forEach(function(item) { 
 
     result += item + "; "; 
 
    }); 
 
    }); 
 
} 
 
ko.applyBindings(my.viewModel);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<ul data-bind="foreach: allItems"> 
 
    <li data-bind="text: FirstName"></li> 
 
</ul> 
 
<input type="button" class="btn btn-success" value="+" onclick="addWitness()" />

Ich habe die Haltepunkte in der Testfunktion festgelegt, aber es wird nicht gefeuert zu werden.

Antwort

0

Versuchen Sie, diese Linie my.viewModel.allItems(data.Witnesses); statt

my.viewModel.allItems = ko.observableArray(data.Witnesses);

+0

es funktioniert! Vielen Dank! –

Verwandte Themen