Javascript Template.myTemplate.rendered在页面刷新后才呈现
为避免出现错误“模板帮助程序中的异常:TypeError:无法读取未定义的属性“profile”,我检查Meteor.user()是否返回了一个对象: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
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}}。。问题是在刷新屏幕之前不会重新运行渲染