0
我有一个流星应用程序。它有一个简单的数据模型和编辑屏幕。型号如下:如何从流星视图的变化事件更新模型?
{
_id: "some_id",
date: "date",
attempts: [{k1: "v1"}, {k1: "v2"}, {k1: "v1"}]
}
该模型存储在会话中。编辑界面organasied通过以下方式:
<template name="editModel">
<form>
{{#each model.attempts}}
{{> attempt}}
<hr/>
{{/each}}
</form>
<button class="btn add-rep">Add</button>
<hr/>
<button type="submit" class="btn btn-primary submit-exercise">Submit</button>
</template>
<template name="attempt">
<label>K1</label>
<select name="k1">
<option {{selected k1 "1"}} >1</option>
<option {{selected k1 "2"}} >2</option>
</select>
</template>
的attempt
模板基本上就是下拉列表中,应该更新对象的财产。我写了下面的代码:
function keyChanged (e, t){
t.data.k1 = t.find("[name='k1']").value;
}
Template.attempt.events = {
"change select[name='grip']" : keyChanged
}
但它不工作,因为data
是只读的。问题是:我如何更新attempts
数组中的那个对象?
问题是,我不能改变已经添加的'尝试' – gor
当然你可以!将它们解析为JavaScript对象,并根据需要更改它们,并使用{'$ set:{attempts:updated_attempts}}'来应用更新 – Akshat
问题,是在更改事件处理程序中,我只有部分尝试收集,并且我甚至不知道它是数组中的索引。 – gor