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

时间:2015-04-27 22:46:50

标签: javascript html backbone.js

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

<div id="some_{{model.property}}_{{other.value}}_text"></div>

我想在我的主干视图中使用JavaScript来动态格式化这些注入的值,以便ID没有空格和斜杠等。问题是我不知道抓住它们的正确语法。现在我这样做:

var unformatted = "some_{{model.property}}_{{other.value}}_text"

然后使用jquery将id设置为格式化值:

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

当然,它给出了带有大括号和数据路径的文字字符串值。我怎样才能获得价值呢?我在后端使用骨干,牵线木偶,需求,引导程序和Spring与JSP。非常感谢!

1 个答案:

答案 0 :(得分:0)

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

<div id="{{newValue}}"></div>

例如,如果您要修改或更改someProperty以便将其呈现为newValue,则只需添加newValue作为其他模型属性。

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)
        })
    ));
}

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