ノックアウトに基づくアルバム編集インターフェースを持っています
アルバムのオブジェクトは次のような構造になっています。
- アルバム
- 題名
- 日にち
- アーティスト (配列)
- 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));
どうでもいい:
- アルバムのタイトルバインディング
- アルバムのジャンルバインディング
- アルバムのアーティストバインディング
何が壊れているか:
binding = two-way binding (例: 曲名の編集中にトラックリストが更新されない)
- トラックのタイトルバインディング
- トラックのジャンルバインディング
- トラックのアーティストバインディング
私は何を間違っていますか?