我在一个名为“todo_form”的模板中有这个:
<input type="hidden" id="priority" value="{{todo.priority}}">
然后,我在表单上设置了一个“渲染”回调,以从隐藏的输入中读取值,并使用它设置一个 jQuery UI 滑块。通过单击列表中的待办事项(通过注册的会话变量“active_todo”)填充表单。
因此,如果我单击优先级为 10 的待办事项,然后单击具有相同优先级的任何其他待办事项$('#priority').val()
将返回空白...只要我单击具有不同优先级的待办事项,它就可以正常工作。我通过使用控制台验证了这一点 - 该字段设置为空白!
我的解决方案是检查注册的“active_todo”并从中提取优先级,但我还必须更新隐藏的输入:$("#priority").val(active_todo.priority)
.
有人有什么想法吗?这是原始(非工作)呈现的回调:
Template.todo_form.rendered = ->
priority = $( "#priority" ).val();
$( "#priority-slider" ).slider(
range: "min"
value: priority
min: 1
max: 10
orientation: 'vertical'
slide: ( event, ui ) ->
$( "#priority" ).val( ui.value)
)
这是我“修复”它的方法:
Template.todo_form.rendered = ->
active_todo = Session.get('active_todo');
$("#priority-slider" ).slider(
range: "min"
value: active_todo.priority
min: 1
max: 10
orientation: 'vertical'
slide: ( event, ui ) ->
$("#priority").val( ui.value)
)
$("#priority").val(active_todo.priority) # SHOULDN'T HAVE TO DO THIS!!!