[英]Knockout js observableArray is not getting updated
我正在尝试从响应数据更新可观察数组。 我敢肯定我错过了一些简单的事情,但是我不知道为什么它不起作用?
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()" />
我已经在测试函数中设置了断点,但是没有被触发。
试试这一行my.viewModel.allItems(data.Witnesses);
代替
my.viewModel.allItems = ko.observableArray(data.Witnesses);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.