【发布时间】:2012-10-31 11:38:47
【问题描述】:
我有一个基于knockout的专辑编辑界面
专辑的对象有这样的结构:
- 专辑
- 标题
- 日期
- 艺术家(阵列)
- 身份证
- 标题
- 流派(数组)
- 身份证
- 标题
- 轨道(阵列)
- 身份证
- 标题
- 艺术家(阵列)
- 身份证
- 标题
- 流派(数组)
- 身份证
- 标题
我创建了一个fiddle 来展示我的工作和问题。
我认为问题出在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 = 双向绑定(例如,在编辑歌曲名称时,tracklist 没有更新)
- 曲目的标题绑定
- 曲目的流派绑定
- 曲目的艺术家绑定
我做错了什么?
【问题讨论】:
-
你说的破碎是什么意思?您发送的小提琴似乎运行良好。
-
@fegemo 双向绑定(例如在编辑歌曲名称时,曲目列表未更新)
标签: javascript data-binding knockout.js knockout-2.0