【发布时间】:2017-03-31 22:54:52
【问题描述】:
我有一个流星应用程序,我添加了插件colorpicker 作为组件。
但我想用一个 MongoDB 集合中的值来初始化它。
所以我初始化了输入文本(类似于#32a214)但是我不知道如何初始化右边小方块的颜色。
在我的 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;
}
}
}
因此,如果我在 html 文件中调用 {{textImageColor}},它可以工作,但不能在 javascript 文件中。
我想这可能是因为加载。颜色在渲染中被初始化,所以如果我用{{textImageColor}} 替换颜色,它不起作用,因为该值尚未从 mongoDB 集合中加载。所以也许我需要等待获得价值,但我不知道该怎么做。
【问题讨论】:
-
您是否有任何服务器代码从数据库中读取该值并通过 Meteor 方法或发布它使其可用?
-
我编辑我的问题。所以我有一个服务器代码,它从数据库中读取值并发布它。所以就像我在编辑中说的那样,也许是因为该值尚未加载。你知道我的意思以及怎么做吗?
-
您在客户端上是否有订阅数据的代码,以及在客户端和服务器上为集合设置变量的相同代码?
-
我有一个订阅文件:
Meteor.subscribe('tiles');,我在助手中设置了变量。我使用的所有代码都在问题和订阅文件中。我什么都没有了。
标签: javascript mongodb meteor color-picker