在Backbone Stickit中与onGet结合使用

时间:2013-02-20 08:50:29

标签: javascript backbone.js backbone-stickit

我有一个包含数据列表的视图,我使用骨干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中的客户格式组合使用?

2 个答案:

答案 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?

我问,因为我认为这个问题可能会在主人身上得到解决。你能尝试以下方法:

stickit master

如果它不起作用,请在github上打开一个问题 - 我在那里非常活跃,并且会深究这一点。

create new issue