0

ActiveJDBCを使用してサードパーティのデータベースにアクセスしています。「users/year」という名前の列があります。私はそれに満足していませんが、それを変えることはできません。この結果は、私のbackbone.jsモデルの基礎となるjsonの属性「users/year」です。次のテンプレートでその属性にアクセスしたい場合:

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

もちろん、それは機能しません。エスケープしようとしましたが、うまくいきません。助言がありますか?

私はactiveJDBCとbackbone.jsを初めて使用するので、属性を受け入れ可能な変数名にマッピングする方法はありますか?またはそのための他の可能な解決策?activeJDBCから他のものに切り替える必要がありますか?

4

2 に答える 2

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/

于 2012-10-02T08:41:20.000 に答える
0

または、モデルの動的ゲッターをゲッターラッパーでラップすることもできます: http ://code.google.com/p/activejdbc/wiki/SettersAndGetters#No_%22standard%22_setters/getters ???

于 2012-10-02T16:31:22.147 に答える