响应变量来捕获用户输入(Meteor)
reactive variable to capture user input (Meteor)
我还在努力理解Meteor中的响应式编程模型,所以这可能是一个愚蠢的问题,但是:
我可以使用模板系统提取数据,而不是"注入"它,如文档所述。也就是说,我有一个像这样的文本区域
<textarea id="desc" rows="15" cols="80" > {{projectDescription}} </textarea>
是否有可能访问projectDescription字段作为响应性数据源,就像它一样?我在REPL中没有使用Template.project.projectDescription,但正如我所说,我是这个游戏的新手。
如果我的建议是不可能的,惯用的方法是什么?比如,我该把
放在哪里呢?document.getElementById('desc').value
模板上的事件映射是设计来完成的吗?这样做的目的是,比方说,验证输入是否唯一(服务器问题)或执行动态mkdn(就像我现在键入…时正在发生的那样)。但最重要的是,我试着去感受一下Meteor
反应性只是一种方式,但是你可以在模板上注册一个事件来捕捉keydown事件,然后设置一个会话变量。会话变量是响应性数据源,因此您可以使用该变量和模板助手在模板的其他部分创建您的响应性。
例如:
<template name="project>
<textarea id="desc"></textarea>
<div>{{projectDescription}}</div>
</template>
Template.project.events({
"keydown #desc": function (event) {
var value = $(event.target).val();
Session.set("projectDescription", value);
}
});
Template.project.helpers({
projectDescription: function () {
var projectDescription = Session.get("projectDescription");
//do processing
return projectDescription;
}
});
Meteor不提供在某些框架中可能遇到的那种双向绑定。可能有一些聪明的包可以帮助解决这个问题,但是一般的方法是将事件绑定到DOM元素:
Template.xyz.events({
"keyup #desc": function (evt, template) {
Session.set("projectDescription", evt.currentTarget.value);
}
});
session-bind包声称要做的就是:会话变量的双向输入绑定。
相关文章:
- Meteor JS自动表单自定义输入-没有当前视图
- Selectize.js:如何将数据库中已经选择的标签预加载到输入字段(Meteor&MongoDB/JSON)
- 什么'是使输入上禁用的属性与Meteor辅助对象反应的最佳方法
- 如何使用ian:accounts-ui-botstrap-3根据Meteor中的用户输入设置配置文件字段值
- 在Meteor中加载带有采集数据的选择输入字段
- 以 Meteor JS 形式存储动态输入值
- 使用 Meteor 框架从表单输入中提取数据时出现问题
- 如何在 Meteor 中使用多个输入字段和单个更新按钮更新文档
- 如何在Meteor中实现实时搜索,而不会在每个字母后出现文本输入模糊
- Meteor根据选择的收音机自动形成隐藏的输入
- 在Meteor Collection上插入后重置输入值
- Meteor FlowRouter触发器输入触发太早
- JS/HTML5/Meteor如何将输入更改为标签
- 为输入popover Meteor JS添加值
- 将输入值保存在无功变量(Meteor)中
- 将自定义输入字段添加到 Meteor 中的自动表单
- 在Meteor中使用autoform创建简单的输入字段
- 响应变量来捕获用户输入(Meteor)
- 如何在Meteor的相同集合字段中添加来自相同表单的两个输入
- 如何在Meteor中为带有输入单元格表的表单做响应式绑定?