在Meteor中,如何从集合中正确返回属性值(在本例中为响应),以便将其发送到数据属性?我尝试了以下功能:
Responses: function(answer) {
return Responses.findOne({answerId: answer.hash.answer});
}
我在空格键模板中将其称为:
data-selected="{{Responses answer=_id}}
当我看到HTML时,它表示数据选择=“[对象对象]”并不是非常令人惊讶,但我无法弄清楚如何仅从匹配中返回响应值。我可以将.response添加到最后并且它可以工作但是会给出预期的“未定义”错误我知道它不是被动的。我见过人们使用wrapasync,但那是方法,而不是订阅。我应该注意到有几个响应,所以代码必须适合#for循环的答案,其中响应变量分别跟踪每个用户的输入。 谢谢!
答案 0 :(得分:2)
我不确定数据选择=“{{Responses answer = _id}}”。由于你已经在for循环中,你的html代码可能看起来像这样:
if($(this).css('display') == 'block')
{
$(this).prev('div').removeClass( "down" );
$(this).prev('div').addClass( "up" );
}
在助手功能中,您可以说:
$(document).ready( function() {
// initialize accordion
$('#Accordion ul').each( function() {
var currentURI = window.location.href;
var links = $('a', this);
var collapse = true;
for (var i = 0; i < links.size(); i++) {
var elem = links.eq(i);
var href = elem.attr('href');
var hrefLength = href.length;
var compareTo = currentURI.substr(-1*hrefLength);
var div = $(this);
if (href == compareTo) {
collapse = false;
$(elem).css({ 'background-color': '#a7a9ac', 'color': '#000' });
break;
}
};
if (collapse) {
$(this).hide();
}
if($(this).css('display') == 'block')
{
$(this).prev('div').removeClass( "down" );
$(this).prev('div').addClass( "up" );
}
});
$("#Accordion").delegate('div', 'click', function() {
$('#Accordion div').removeClass( "up" );
$('#Accordion div').addClass( "down" );
var ul = $(this).next('ul');
if (ul.is(':visible'))
{
ul.slideUp(500);
}
else
{
$('#Accordion ul').not(ul).slideUp(500);
ul.slideDown(500);
var div = $(this)
$( this ).toggleClass( "up" );
}
});
});
当页面仍在加载且数据尚未可用时,myResponse仍为null,因此助手返回空字符串“”。此后不久,数据变得可用,您的数据将被返回,而控制台中没有任何错误。