【发布时间】:2015-10-09 12:27:52
【问题描述】:
我的 MVC 视图模型包含许多属性,包括对象列表。
此模型与淘汰模型绑定如下:
viewModel = new DynamicModelLoading(@Html.Raw(Model.ToJson()));
ko.applyBindings(viewModel);
查看淘汰模型时,我可以看到我的列表已成功创建为数组。
我遇到的问题是,每当我在数组上使用 arrayFirst 时,它总是返回 null。我可以在 javascript 中创建一个 observablearray 并且 arrayFirst 工作正常。
var match = ko.utils.arrayFirst(viewModel.activeList(), function (item) {
return 2 === item.id;
});
为了能够将 arrayFirst 应用于已从我的 MVC 模型绑定的数组,我做错了什么吗?
【问题讨论】:
-
你能展示一下
viewModel.activeList()的样子吗,或许可以通过控制台转储它? -
试试
return 2 == item.id()我希望它是可观察的。欢呼 -
好的,这提供了更多的洞察力,但我仍然没有更接近理解原因。 JSON.stringify(viewModel.activeList()) 只返回“[{},{},{},{},{},{},{}]”。但在淘汰赛上下文中,我可以看到一个充满有效对象的数组。
-
尝试@supercool 建议,否则如果无法观察到,则尝试返回 2 == item.id;
-
是的,试过了。不工作。似乎与淘汰赛映射有关,但我不知道是什么
标签: arrays asp.net-mvc knockout.js