【问题标题】:ActiveJDBC + Backbone.js Generated attribute name not usableActiveJDBC + Backbone.js 生成的属性名称不可用
【发布时间】:2012-10-02 08:20:31
【问题描述】:

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

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

当然不行。我试过逃跑,但那不起作用。有什么建议吗?

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

【问题讨论】:

    标签: java html backbone.js activejdbc


    【解决方案1】:

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

    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/

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你能举个例子吗?我以前看过那个页面,没有帮助我,sry。据我了解,问题在于属性名称而不是 getter。
      • 而不是这样做:user.get("address");你添加一个吸气剂: class User{ public String getAddress(){ return getString("address"); } }
      猜你喜欢
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2012-10-09
      • 2011-09-11
      相关资源
      最近更新 更多