我有一个基于淘汰赛的专辑编辑界面
相册的对象有这样的结构:
- 专辑
- 标题
- 日期
- 艺术家(数组)
- ID
- 标题
- 流派(数组)
- ID
- 标题
- 轨道(阵列)
- ID
- 标题
- 艺术家(数组)
- ID
- 标题
- 流派(数组)
- ID
- 标题
我创建了一个小提琴来展示我的工作和它的问题。
我认为问题出在tracks: ko.observableArray(album.tracks)
:
var initialData = […];
var AlbumsModel = function(album) {
var self = this;
self.albums = ko.observableArray(ko.utils.arrayMap(album, function(album) {
return {
title: album.title,
image: album.image,
artists: ko.observableArray(album.artists),
date: album.date,
genres: ko.observableArray(album.genres),
composers: ko.observableArray(album.composers),
lyricists: ko.observableArray(album.lyricists),
tracks: ko.observableArray(album.tracks)
}
}));
self.lastSavedJson = ko.observable('')
self.save = function(formElement) {
self.lastSavedJson(JSON.stringify(ko.toJS(self.albums), null, 2));
};
};
ko.applyBindings(new AlbumsModel (initialData));
什么好:
- 专辑标题装订
- 专辑流派绑定
- 专辑艺术家绑定
出问题了:
绑定=双向绑定(例如在编辑歌曲名称时,曲目列表未更新)
- 曲目的标题绑定
- Track 的流派绑定
- Track 的艺术家绑定
我究竟做错了什么?