0

我試圖在模板中應用每個日期選擇器,然後將該模板添加到DOM。 我能夠做到這一點,首先將模板添加到DOM(使用$ .each),但我現在將職責分開(使用Backbone),我需要按照該順序完成。 我想在我的模板的上下文中使用replaceWith:在將模板添加到DOM之前,在模板中應用JQuery-UI日期選擇器

$("input[type=date]", template).replaceWith(function() { 
    $(this).datepicker({dateFormat : "yy-mm-dd"}); 
    return this.outerHTML; 
}); 
return Mustache.render(template, this.model.toJson); 

但不更新模板,replaceWith只返回我的更新輸入數組。我覺得答案並不遙遠,但我被困在這裏。 我可以在應用日期選擇器之前或之後用小鬍子呈現模板,這不是問題。

任何想法?

回答

2

Mustache.render將根據template中的模板和this.model.toJson(應該是this.model.toJSON(),no?)中的模板返回一些HTML。所有jQuery UI的東西和jQuery事件都綁定到DOM元素,而不是HTML文本,因此無論您綁定到template什麼都沒有關係,它們都不會通過Mustache存活。

您需要將所有內容綁定到輸出Mustache.render。更多的東西是這樣的:

render: function() { 
    var template = ... 
    var html = Mustache.render(template, this.model.toJSON()); 
    this.$el.append(html); 
    this.$('input[type=date]').datepicker({dateFormat: 'yy-mm-dd'}); 
    return this; 
} 

,然後什麼叫render$something.append(v.render().el)

相關問題