所设置的新键:处理在数据绑定
我有一个显示使用模板表一knockout.js应用“的foreach:$ data.items”。
数据设定与数据绑定像这样的$:
<div data-bind="template: {name: 'table-custom', data: {table: 'item-list-custom', config: $root.items, default: {foo: '', bar: ''}}}"></div>
的$ root.items是http://stardict.sourceforge.net/Dictionaries.php下载的阵列,像这样:
[{foo: 'val2', bar: 'val2'}, ...]
我得到的值JSON中的$ root.items,并根据模板创建表。
问题:
我想一个新列添加到表中,所以我增加了一个默认值“默认”字典(例如巴兹:“”)。新列呈现为选择(下拉列表)。
一切都可以做到这一点。我的问题是:
1)如何设置所选选项的值如果可用?我试图
<select data-bind="value: baz, ...
但投诉,因为现有的行(从JSON)还不包含巴兹关键,所以它不能找到它。
2)当我在选择中选择一些值时,对于现有的行,它不会与模型的其余部分一起保存。即他们仍然只包含“foo”和“bar”键。
如果我在表中添加一个新行,然后选择一个值,它就可以正常工作,并将baz值与其他值一起保存。我想这是因为“默认”baz值为新行开始,而不是现有的行。
那么,如何让我的现有数据(在加载时没有“baz”属性,因为我稍后将其添加到表中)与新行一样使用此设置?
谢谢。这适用于(1)问题,但不适用于(2)。 – Hejazzman
我不明白,从你的描述(2)它听起来像属性没有被填充,如果它最初未定义在行中。在我的JsFiddle中,列表中的第二项没有定义myProp,但是这个属性可以通过select来设置,并且会保存回底层对象,如点击“show'em”按钮所示。我不明白还需要什么? –