我有以下标记:
<table>
<tr>
<td style="padding-left: 150px;">
<ul id="items" data-bind='foreach: Items'>
<li>
<span class="title" data-bind="text: $data.Title"></span>
<li>
</td>
</tr>
</table>
和以下javascript:
$(function () {
var ViewModel = function () {
var self = this;
self.Items= ko.observableArray();
self.arrayChanged = function (array) {
$.each(array, function (i, obj) {
self.Items.push(obj);
});
};
};
var viewModel = new ViewModel();
ko.applyBindings(viewModel, $("#items")[0]);
viewModel.arrayChanged($.parseJSON('@Html.Raw(Json.Encode(Model.Items))'));
});
上面是我正在尝试做的简化版本。在上面
self.Items.push(obj);
不起作用,因为它无法将新项目推送到Items的observableArray上。我也尝试使用
ko.utils.arrayPushAll(self.Experiences, obj);
无济于事。有任何想法吗?
试试这个
self.arrayChanged = function (array) {
var arr = JSON.parse(array)
self.Items(arr)
};
将json转换为对象,然后将对象数组传递给 Items
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句