Javascript 如何使窗体控件在“a”中处于被动状态;回写;方式
假设我有两个文本输入字段,其值与集合的名称和描述关联:Javascript 如何使窗体控件在“a”中处于被动状态;回写;方式,javascript,meteor,Javascript,Meteor,假设我有两个文本输入字段,其值与集合的名称和描述关联: {{#with set}} <input type="text" id="set_name" value="{{name}}" placeholder="Untitled Set"/> <input type="text" id="set_desc" value="{{description}}" placeholder="Add Description"/> {{/with}} 这在一段时间后变得相当重复。在《流
{{#with set}}
<input type="text" id="set_name" value="{{name}}" placeholder="Untitled Set"/>
<input type="text" id="set_desc" value="{{description}}" placeholder="Add Description"/>
{{/with}}
这在一段时间后变得相当重复。在《流星》中,有没有一种方法可以证明这一点?如果没有,有什么建议如何扩展Meteor以允许这种双向反应
Knockout.js有一个很好的方法(当然只是在客户端):您正在寻找的是所谓的双向数据绑定。正如@emgee所指出的,Meteor(目前)并不支持它。也就是说,您可以通过以某种方式添加Meteor的包来扩展Meteor:
- 专门设计用于向把手模板添加双向数据绑定支持。请参阅有关
的说明中的。尽管软件包描述自己处于“早期偷偷窥视测试状态”,但要小心liveUpdate:true
- 将角度框架添加到Meteor。这是一个更激进的解决方案,它将或多或少地用Angular.js支持双向数据绑定的模板取代把手。虽然Angular本身已经成熟,但它在Meteor中的实现在这一点上类似于alpha
update = (set, field, newVal)->
newVal = $.trim(newVal)
if newVal && set[field] != newVal
keyVal = {}
keyVal[field] = newVal
Sets.update(_id:set._id, {$set:keyVal})
Template.cardSubmit.events
'change #set_name': (evt)->
update(this, 'name', evt.target.value)
'change #set_desc': (evt)->
update(this, 'description', evt.target.value)