更新knockoutjs中的特定子对象

时间:2012-09-24 16:27:46

标签: javascript jquery knockout.js knockout-mapping-plugin

我有一个嵌套对象,如:

Album
-- Track 1
----Clip
--Track 2
----(None)
Album
--Track x
----Clip

我使用knockout mapping plugin创建了viewModel。一切都按预期工作(事实上在这个帖子的帮助下can't resolve knockout js with nested objects

现在问题是Track 2的Clip对象最初不存在。在界面中,用户创建了它,我从服务器(ajax调用)获得了关于此剪辑对象的正确JSON。现在,我如何更新我的viewModel(viewModel.albums是映射对象)以将此剪辑信息从我的Ajax回调推送到Track 2?我对ajax回调中Track的上下文没有任何线索。如果我有,那我认为会更容易。

如果问题没有意义,我会尝试在jsfiddle中添加更多视觉效果。提前致谢。

1 个答案:

答案 0 :(得分:0)

听起来你想要这样的东西:

viewModel.albums()[i].tracks()[j].clip = ko.mapping.fromJS(data);

其中 i 是您要将其推送到哪个相册,而 j 是您要将该推送到该相册中的哪个曲目。