gpt4 book ai didi

javascript - Meteor 方法不将 html 返回到模板

转载 作者:行者123 更新时间:2023-11-27 23:42:18 24 4
gpt4 key购买 nike

我试图在用户首次登录时显示警报警告,在首次登录后我不希望显示此消息。所以我创建了这个方法:

Meteor.methods({
'firstLogin': function() {
if (Meteor.user().loggedInTimes === 0) {
return '<div class="alert alert-info alert-dismissible alertBar" role="alert"><br><button type="button" class="alertButton" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button><b>Please take a few minutes to personalise your experience at SSAW by updating your <a href="/profile" class="alert-link hoverAlert">profile</a></b>. </div>';
}
}
});

我在Meteor.isClient中将其称为:

if (Meteor.isClient) {
Template.myHome.helpers({
count: function(){
var user = Meteor.user();
//console.log(user);
if (user) {
Meteor.call('firstLogin');
}
}
});
}

但是,这不会从该方法呈现任何 html。如何让 html 警报消息出现?

这是模板:

<template name="myHome">
<div class="container">
{{{ count }}}
<div class="text-center">
{{#if currentUser }}
<h1 class="roboto">Hi{{ username }}</h1>
{{/if}}
</div>
</div>

最佳答案

Meteor.call 是一个异步函数,因此您必须传递回调函数并返回结果。这就是你需要改变的。

这里我将回调函数传递给Meteor.call,并从firSTLogin方法返回结果或错误,如果没有错误则返回结果。

Meteor.call('firstLogin', function(error,result){
if(!error){
return result;
}
});

还使用Handlebars.SafeString从辅助函数返回html

完整的辅助功能

if (Meteor.isClient) {
var count;

Template.myHome.onCreated(function(){
var user = Meteor.user();
//console.log(user);
if (user) {
Meteor.call('firstLogin', function(error,result){
if(!error){
count = result;
}
});
}
}

Template.myHome.helpers({
count: function(){
return new Handlebars.SafeString(count);
}
});

}

关于javascript - Meteor 方法不将 html 返回到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33573525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com