我正在构建一个应用程序,其中我在后端使用 Django,并在前端使用 jQuery UI/Backbone。我正在将 Django 生成的表单拉入带有 jQuery.get() 的主干视图内的页面中。这部分工作正常,但现在我想在表单中添加一些 jQuery UI 内容(例如日期选择器、一些打开对话框的按钮等)。所以,这里是相关的代码:
var InstructionForm = Backbone.View.extend({
render: function() {
var that = this;
$.get(
'/tlstats/instruction/new/',
function(data) {
var elements = $(data);
$('#id_date', elements).datepicker();
that.$el.html(elements.html());
}
};
return this;
}
});
路径 /tlstats/instruction/new/ 返回一个带有 Django 生成的表单的 HTML 片段。发生的事情是 input#id_date 正在添加 hasDatePicker 类,并且 datepicker div 被附加到我的 <body> 元素(两者都符合预期),但是当我单击 input#id_date 时,什么也没有发生。没有出现日期选择器小部件,控制台中也没有错误。为什么会发生这种情况?
此外,有点离题,但在试图自己解决这个问题时,我遇到了几个代码示例,其中人们正在执行以下操作:
$(function() {
$('#dialog').dialog(...);
...
});
然后后来:
var MyView = Backbone.View.extend({
initialize(): function() {
this.el = $('#dialog');
}
});
这不是违背了 Backbone 的目的,让所有 jQuery UI 代码完全在任何 Backbone 结构之外吗?还是我误解了Backbone的作用?
谢谢。