我有一个流星应用程序,并添加了插件colorpicker作为组件。 但我想用一个MongoDB集合中的值来初始化它。 所以我初始化输入文本(类似#32a214
),但我不知道如何初始化在右边的小广场的颜色。使用mongoDB数据初始化引导程序colorpicker
在我的HTML文件我有:
<div class="form-group"><label class="col-sm-2 control-label">Color text image<br/></label>
<div class="col-sm-10">
<div id="colorText" class="input-group colorpicker-component">
<input type="text" value={{textImageColor}} id="textImageColor" placeholder="Choose a color" class="form-control" />
<span class="input-group-addon"><i></i></span>
</div>
</div>
</div>
在我的JavaScript文件,我有:
Template.yourTile.rendered = function(){
$('#colorText').colorpicker({
color: "#32a214"
});
}
所以我想从数据库中值来代替 “#32a214”。 我愿做这样的事情:
color: {{textImageColor}}
但它不工作。所以,你知道我该怎么做吗?
编辑:
我对服务器端JavaScript代码:
Meteor.publish('tiles', function(){
return tiles.find();
});
,我和一个助手获取数据:
Template.yourTile.helpers({
'textImageColor': function(){
var userID = Meteor.userId();
var doc = tiles.findOne({createBy: userID });
var textImageColor = doc && doc.textImageColor;
if(textImageColor == ""){
return "";
}else{
return textImageColor;
}
}
}
所以,如果我叫{{textImageColor}}
在一个html文件中,它可以工作,但不在JavaScript文件中。 我想这可能是因为加载。颜色在渲染时初始化,所以如果我用{{textImageColor}}
替换颜色,它不起作用,因为值尚未从mongoDB集合中加载。所以也许我需要等待有价值,但我不知道该怎么做。
您是否有任何服务器代码正在从数据库中读取该值,并通过Meteor方法或通过发布它来使其可用? – zim
我编辑我的问题。所以我有一个服务器代码,它读取数据库中的值并发布它。 所以就像我在编辑中所说的,也许是因为这个值还没有加载。 你知道我的意思吗?怎么做? – Adrien
您是否在订阅数据的客户端上具有代码,并且在为客户端和服务器设置相同的代码以设置该集合的变量? – zim