ActiveJDBC + Backbone.js生成的属性名称不可用

时间:2012-10-02 08:20:32

标签: java html backbone.js activejdbc

我正在使用ActiveJDBC访问第三方数据库。有一个名为“users / year”的列。我对此并不满意,但无法改变它。 这个结果是json中的一个属性“users / year”,它是我的backbone.js模型的基础。现在,如果我想在以下模板中访问该属性:

<li><%= name+ ' ' + users/year %></li>

当然它不起作用。我尝试逃避但这不起作用。有什么建议吗?

由于我是activeJDBC和backbone.js的新手,有没有办法将属性映射到可接受的变量名?或其他可能的解决方案?我应该从activeJDBC切换到其他东西吗?

2 个答案:

答案 0 :(得分:0)

您可以向集合或模型添加解析方法,以将属性重新映射为可用名称:

var  M = Backbone.Model.extend({
    parse: function(resp) {
        if (resp['users/year']) {
            resp['users_year'] = resp['users/year'];
            delete resp['users/year'];
        }

        return resp;
    }
});

并相应地更改模板

<li><%= name+ ' ' + users_year %></li>

小提琴http://jsfiddle.net/nikoshr/rnKSD/

答案 1 :(得分:0)

或者你可以使用getter包装器包装模型的动态getter: http://code.google.com/p/activejdbc/wiki/SettersAndGetters#No_%22standard%22_setters/getters ...