我在尝试制作响应式(Reactive)表单时遇到问题。当我将数据插入一个集合时,另一个选择也会刷新。输入字段也会发生这种情况,当我更新绑定(bind)集合之一时,所有内容都会被清除。
这应该发生吗?
我的测试代码:
<template name="test">
<form class="form-horizontal well" id="test-form">
<select class="input-xlarge" name="item_id">
{{#each types}}
<option value="{{_id}}">{{name}}</option>
{{/each}}
</select>
<select class="input-xlarge" name="category_id">
{{#each categories}}
<option value="{{_id}}">{{name}}</option>
{{/each}}
</select>
</form>
</template>
我的 helper 是:
Template.accounts.type = ->
Types.find({}).fetch()
Template.accounts.categories = ->
Categories.find({}).fetch()
最佳答案
我认为这是 Meteor 目前的一个限制,希望将来能得到解决。
正如 irc 上所讨论的,有一些绕过它的方法:
- 将它们分成不同的模板
- 将它们包装在调用
Meteor.ui.chunk
的助手中。 使用 session 变量来跟踪当前选定的状态。例如:
Template.accounts.events = { 'change #category_id': function() { Session.set('selected_category_id', $(this).val()); } }
(以及用于在 Session.get('selected_category_id')
中初始选择值(如果模板中没有 undefined
)的代码)。
关于 meteor 形态状态未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092704/