所以我有一个看起来像这样的json模型:
results = [
{
Answer: "N",
AnswerSelected: "Y",
Display: "X",
ParentOption: "",
ParentQuestion: "",
QuestionId: "quest1", //<-- The key for the object
QuestionSeq: "001",
QuestionText: "this is question one?",
},
...
]
所以在数组中我有5个项目(索引0,1,2,3和4)。我希望能够通过提供与所有这些信息不同的questionId来编辑一些信息。因此,问题ID将是模型的关键,但是我是否可以循环遍历模型,或者是否有更快的方法来获得结果否然后修改它?
答案 0 :(得分:0)
你必须循环:(
找到项目的索引并在绑定路径中使用它:/0/QuestionText
。或者执行view.bindElement("/"+index);
之类的操作,在视图中使用相对绑定路径(不带前导/
)。
根据您的应用,另一种方式可能是将模型数据转换为如下地图:
var converted = {};
results.forEach(function(item){ converted[item.QuestionId] = item; });
myJsonModel.setData(converted);
然后,您可以使用/001/QuestionText
之类的绑定路径。
请注意,在搜索密钥或转换数据之前,必须等待所有情况下都要加载模型。您可以使用Model.requestCompleted事件来完成此操作。