Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Template.myTemplate.rendered在页面刷新后才呈现_Javascript_Meteor - Fatal编程技术网

Javascript Template.myTemplate.rendered在页面刷新后才呈现

Javascript Template.myTemplate.rendered在页面刷新后才呈现,javascript,meteor,Javascript,Meteor,为避免出现错误“模板帮助程序中的异常:TypeError:无法读取未定义的属性“profile”,我检查Meteor.user()是否返回了一个对象: Template.create.isActive = function () { var user = Meteor.user(); return user && user.profle.isActive; }; 当我实现这个更改时,它解决了错误消息,但却产生了一个新问题。。。不再呈现“Template.create.r

为避免出现错误“模板帮助程序中的异常:TypeError:无法读取未定义的属性“profile”,我检查Meteor.user()是否返回了一个对象:

Template.create.isActive = function () {
  var user = Meteor.user();
  return user && user.profle.isActive;
};
当我实现这个更改时,它解决了错误消息,但却产生了一个新问题。。。不再呈现“Template.create.rendered=function()”。它仅在刷新页面后呈现。你知道怎么解决这个问题吗

使现代化 Template.myTemplate.rendered中的代码

Template.create.rendered = function() {
  if (!this._rendered) {
    this._rendered = true;

    // Form validation
    $("#create").bootstrapValidator({
      feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
      },
      /* submitButtons: '#fakeSubmit', Trick validator until https://github.com/nghuuphuoc/bootstrapvalidator/pull/244 is fixed */
      submitHandler: function(validator, form, submitButton) {
        var $form = $('#buildingCreate');

        var building = {
          company: $form.find('[name=company]').val(),
          address: $form.find('[name=address]').val(),
          floor: $form.find('[name=floor]').val()
        };

        Meteor.call('ensureBuilding', building.company, building.address, building.floor);

        Router.go('create');
      },
      fields: {
        company: {
          trigger: 'blur',
          validators: {
            notEmpty: {
              message: 'Please provide the company name'
            }
          }
        },
        address: {
          trigger: 'blur',
          validators: {
            notEmpty: {
              message: 'Please provide the company address'
                }
              }
            },
            floor: {
              trigger: 'blur',
              validators: {
                notEmpty: {
                  message: 'Please provide the floor'
                }
              }
            }
          }
        })
      }
    };
从文档中:

当Template.myTemplate的实例呈现到DOM节点并首次放入文档时,将调用此回调一次

如果
#create
在模板呈现时为false的
{{{If}}
块中,验证将不会初始化

改变

<template name="parent">
  {{> create}}
</template>

<template name="create">
  {{#if isActive}}
    <div id="create"> ... </div>
  {{/if}}
</template>

{{>创建}
{{#如果是活动的}
... 
{{/if}

<template name="parent">
  {{#if isActive}}
    {{> create}}
  {{/if}}
</template>

<template name="create">
  <div id="create"> ... </div>
</template>

{{#如果是活动的}
{{>创建}
{{/if}
... 

这样,当调用
渲染时,
#create
肯定在DOM中。另外,如果只调用了一次rendered,那么你不需要
如果(!this.\u rendered).

你能显示rendered函数中的内容吗?Neil-用rendered函数中的内容更新了帖子…你希望什么时候调用
rendered
?在html文件中:然后我运行把手{{{#if isActive}}。。问题是在刷新屏幕之前不会重新运行渲染