【发布时间】:2013-03-13 17:01:16
【问题描述】:
参考这个小提琴:http://jsfiddle.net/44AwW/3/
3 秒后,一个新的“地点”被添加到 <table>(作为模拟 ajax 加载数据的一种方式)。
'Place' 是一个简单的 JS 对象,但它的两个属性(City 和 PlaceType)本身就是对象 - 每个都有一个 'id' 和 'name' 属性。
var Place = {
id: 1,
name: "Paradiso",
placeType: {
id: 1,
name: "Concert Hall"
},
city: {
id: 1,
name: "Amsterdam"
},
address: "Somewhere in the city"
}
单击“编辑”选项时,网格中“地点”的值应设置为以下形式:城市和地点类型<select>s 应分别显示“阿姆斯特丹”和“音乐厅”,但只有 '显示/设置名称'和'地址'。
现在,当我通过表单本身和“添加”按钮添加新地点时,单击表格中刚刚创建的地点的“编辑”链接,它的所有属性确实已设置并显示在表单中,包括City 和 PlaceType。
因此,通过表单创建并添加到 observableArray(因此显示在 <table> 上)的 Places 的所有属性值在使用 Edit 按钮时正确显示,但是当 Places 以编程方式添加时(如小提琴中所示) ) 或通过 ajax,City 和 PlaceType 属性无法设置并显示在表单上。
我错过了什么?
【问题讨论】:
标签: knockout.js