如何使用JavaScript访问注入HTML模板的值?

如何使用JavaScript访问注入HTML模板的值?,javascript,html,backbone.js,Javascript,Html,Backbone.js,我有一个带有div的HTML模板,如下所示: <div id="some_{{model.property}}_{{other.value}}_text"></div> 然后使用jquery将id设置为格式化值: $('.common-class').attr('id', unformatted.formatMe()); 当然,它是给我带花括号的文字字符串值和数据路径。我怎样才能得到这些值呢?我在后端使用主干、木偶、require、bootstrap和Spring以及

我有一个带有div的HTML模板,如下所示:

<div id="some_{{model.property}}_{{other.value}}_text"></div>
然后使用jquery将id设置为格式化值:

$('.common-class').attr('id', unformatted.formatMe());

当然,它是给我带花括号的文字字符串值和数据路径。我怎样才能得到这些值呢?我在后端使用主干、木偶、require、bootstrap和Spring以及jsp。非常感谢

@meagar是正确的。在呈现模板之前,应该创建所需的属性。模板应引用新值,而不是原始模型属性

<div id="{{newValue}}"></div>
render: function() {
    this.model.set('newValue', computeNewValue(someProperty));
    this.$el.html(this.template(this.model.toJSON()))
}
如果不希望newValue属性污染模型,只需将其添加到传递到模板的对象中即可:

render: function() {
    this.$el.html(this.template(
        _(this.model.toJSON()).extend({
            newValue: computeNewValue(someProperty)
        })
    ));
}

在后一种情况下,不会修改模型本身,但模板能够访问计算值。

在注入值并尝试向DOM添加无效标记片段之前,需要执行此操作。以后再这样做已经太晚了,您无法通过一个带有空格的ID查询元素,因为该ID首先不是有效的ID。在主干中,可以在模型的渲染方法中执行此操作。除非您向我们展示您的渲染,否则我们无法告诉您更多信息。与其尝试将数据填充到id字段中以便稍后解析,不如使用其他字段,如数据字段。然后使用$'.common class'.data'whatevermodelproperty'和$'.common class.data'othervalueproperty'访问它们。实际上,我正在onrender函数中进行这些更改。虽然我是白手起家,但我现在所拥有的正是我上面所写的。我需要在onrender函数的范围内设置这些值吗?我同意。但我实际上无法控制这些数据是如何被提取进来的,因为其他跟踪的东西等都取决于id是否保存了这些信息。我不确定,但我们可能是
render: function() {
    this.$el.html(this.template(
        _(this.model.toJSON()).extend({
            newValue: computeNewValue(someProperty)
        })
    ));
}