我有一个包含数据列表的视图,我使用骨干stickit进行模型绑定。
如果数据不可用,我不想显示列表元素,但如果数据可用,我需要格式化它,因此我尝试了以下绑定:
'.emailItem': {
observe: 'emailAddress',
visible: function(viewVal, modelVal){ return !!modelVal; },
onGet: function (val) {
return '<span>E-mail</span><strong><a href="mailto:' + val + '">' + val + '</a></strong>';
},
updateMethod: 'html'
},
.emailItem匹配元素<li class="emailItem"></li>
。
当我运行它时,列表元素显示正确,但是onGet的结果未插入到视图中。如何将visible
属性与stickit中的客户格式组合使用?
答案 0 :(得分:1)
我找到了一个解决方案:
'.emailItem': {
observe: 'emailAddress',
visible: true,
visibleFn: function ($el, isVisible, modelAttr) {
var value = this.model.get(modelAttr);
$el.html('<span>Email</span><strong><a href="mailto:' + value + '">' + value + '</a></strong>');
}
}
这很好用,但这不是应该使用visibleFn的方式。如果有更好的方法,请告诉我。
答案 1 :(得分:1)
您使用的是什么版本的Stickit?
我问,因为我认为这个问题可能会在主人身上得到解决。你能尝试以下方法:
如果它不起作用,请在github上打开一个问题 - 我在那里非常活跃,并且会深究这一点。