当我在列表中更改了一些嵌套项目时,我正在寻找刷新视图。
主列表是rt.projects()
,我找到一些使用ID的嵌套元素,我将其称为match
并在嵌套列表中添加一个项目(SelectedMembersForProject
)
我想更新新添加的值以供查看,我该怎么做?
以下是我写的代码:
case "Project":
debugger
var match = ko.utils.arrayFirst(rt.projects(), function (item) {
return item.Soid === ui.item.SourceSoid;
});
debugger;
if (match) {
var indexVal = rt.projects.indexOf(match)
var AddItem = {
MemberProfileId : ui.item.MemberSoid,
MembeImageName: ui.item.ImageFileName,
MemberName: ui.item.Name
};
match.SelectedMembersForProject.push(AddItem);
rt.projects.replace(rt.projects()[indexVal], match);
}
break;
仍然无法在VIEW中看到我新添加的值!,出了什么问题?
下面的图片应该会有更多的想法 http://postimg.org/image/jx8n6516f/ http://postimg.org/image/5wx6cg4fn/
答案 0 :(得分:1)
从您发布的代码看起来,问题是您的SelectedMembersForProject
对象不是observableArray。从服务器检索数据时可以执行的操作,将数据集转换为适合淘汰的模型。
写作并不好玩,但这应该可以解决你的问题。
请参阅此处获取一个工作示例(其中子数组 是一个可观察数组):http://jsfiddle.net/hjhyn/
..这里是为了复制你的问题(子数组不是一个可观察的数组):http://jsfiddle.net/hjhyn/1/