用于捕获用户输入的反应变量(Meteor)

Ben*_*Ben 6 javascript meteor

我仍然试图围绕Meteor的反应式编程模型,所以这可能是一个愚蠢的问题,但是:

我是否可以使用模板系统来提取数据,而不是"记录"它.也就是说,我有一个像这样的textarea

     <textarea id="desc" rows="15" cols="80" >  {{projectDescription}} </textarea>
Run Code Online (Sandbox Code Playgroud)

那么可以将projectDescription字段作为反应数据源访问吗?我没有在REPL的任何地方使用Template.project.projectDescription,但正如我所说,我是这个游戏的新手.

如果我的建议是不可能的,那么惯用法是什么?就像,我会把我的地方放在哪里

document.getElementById('desc').value
Run Code Online (Sandbox Code Playgroud)

模板上的事件地图是按照设计方式完成的吗?例如,这是为了验证输入是唯一的(服务器问题)还是动态执行mkdn(就像我输入时正好发生......).但大多数情况下,我试图了解Meteor.

Kel*_*ley 5

反应性只是一种方式,但您可以在模板上注册事件以捕获keydown事件,然后可以设置会话变量.会话变量是反应性数据源,因此您可以使用变量和模板帮助程序在模板的另一部分中创建反应.

举个例子:

<template name="project>
  <textarea id="desc"></textarea>
  <div>{{projectDescription}}</div>
</template>
Run Code Online (Sandbox Code Playgroud)

-

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;
  }
});
Run Code Online (Sandbox Code Playgroud)