0

我想使用诸如 post-header-id-23 之类的值作为 el id 值。我只是要像这样使用jQuery:

$('#post-header-id-' + this.model.id).after(compiled_template);

但看起来事件并没有连接起来。有没有办法解决这个问题,以便 jQuery 选择器不会抑制普通选择器。或者,它看起来像:

el: $('#post-header-id' + this.model.id ),

但是我将如何在渲染函数中进行设置?还是我做错了什么?

谢谢

4

2 回答 2

3

这里的关键是你必须决定什么时候是决定什么是“el”的正确时间;不幸的是,您不能只给 Backbone 一个选择器并期望它神奇地保持最新。

所以,记住这一点,如果“渲染”是设置你的 el 的正确时间(通常初始化或渲染是正确的位置),你只需要使用 Backbone 的(有点新的)setElement函数:

var SomeView = Backbone.View.extend({
    render: function() {
        this.setElement($('#post-header-id' + this.model.id));
        return this;
    }
})
于 2012-12-13T21:33:38.250 回答
0

从 0.9.9 版本开始

在声明视图时,如果您希望在运行时确定它们的值,现在可以将选项、el 和 tagName 定义为函数。

这样的事情应该这样做:

id: function() {
  return '#post-header-id' + this.model.id
}
于 2012-12-15T02:06:13.120 回答