Javascript 流星助手已经跑了

Javascript 流星助手已经跑了,javascript,jquery,meteor,meteor-blaze,Javascript,Jquery,Meteor,Meteor Blaze,如何检查所有流星助手是否已运行 当我使用这段代码时,我会得到一个新的空div。当我从呈现函数中删除代码并从控制台运行它时,一切正常 Template.CasesShow.helpers({ value: function (n) { if (this.data) { var result = this.data.filter(function (obj) { return obj.name == n; }); if (result

如何检查所有流星助手是否已运行

当我使用这段代码时,我会得到一个新的空div。当我从呈现函数中删除代码并从控制台运行它时,一切正常

Template.CasesShow.helpers({
  value: function (n) {
    if (this.data) {
      var result = this.data.filter(function (obj) {
        return obj.name == n;
      });

      if (result && result[0]) 
        return result[0].value;
    }
  }
});

Template.CasesShow.rendered = function () {
  $(document).ready(function () {
    $textarea = $('[name=1]');

    var content = $textarea.val().replace(/\n/g, '<br />');

    $textarea.replaceWith($('<div class="box">' + content + '</div>'));
  });
};

<template name="CasesShow">
  <textarea class="w-input box" placeholder="{{_ 'laborauftrag.praxis'}}" name="1" data-name="1">{{value 1}}</textarea>
</template>
Template.CasesShow.helpers({
值:函数(n){
如果(这个数据){
var结果=this.data.filter(函数(obj){
返回obj.name==n;
});
if(结果和结果[0])
返回结果[0]。值;
}
}
});
Template.CasesShow.rendered=函数(){
$(文档).ready(函数(){
$textarea=$('[name=1]');
var content=$textarea.val().replace(/\n/g,
); $textarea.replace为($(''+内容+''); }); }; {{value 1}}
所以我认为Meteor还没有插入值,这很奇怪,因为它当时不应该运行渲染函数,对吗


如何确保Meteor已运行帮助程序?

Template.rendered=func
将在模板的帮助程序之前运行一次(并且在路由提供数据之前很久)。使用
template.rendered
函数时,模板不起作用,因为在呈现函数中,您用div替换textarea,而在helper中,您返回的是在textarea上设置的不再存在的值(因为
template.CaseShow.rendered
已将其替换为

若你们能提供更多关于你们在这里想要达到的目标的细节,我们就能解决这个问题。你们现在所知道的是流星的预期行为

如果您希望在div中显示内容,但在将
/n
替换为

之后,我相信您可以通过在模板帮助程序中的
数据上执行regexp来实现这一点。

放置
控制台.log(“激发值帮助程序”);
并对
执行同样的操作。呈现的
控制台.log(“模板渲染”);
代码将登录到客户端浏览器控制台。对于chrome,我右键单击浏览器并选择inspect元素。然后从日志数组中选择console。客户端js代码如下所示:

Template.CasesShow.helpers({
    value: function (n) {
       console.log("FIRED VALUE HELPER");


Template.CaseShow.rendered = function () {
  console.log("FIRED RENDERED");

如果您在客户端浏览器控制台中看不到日志,则不会调用helper/rendered函数。

textarea变量名前的$符号有什么作用?告诉我它是一个jQuery对象。想法来自于此:您可以为正在使用的模板发布HTML吗。我相信
helper
将在
之后运行dered
,因为呈现只关心模板中的基本HTML。我觉得很奇怪,你会在
呈现的
@Shaded中注入HTML,我更新了我的帖子,所以这里的最终目标是有类似
{value 1}