2

私は JS 開発に不慣れで、モデル属性のタイプミス、特に model.get() の使用法に起因するバグを修正するために、望ましい以上の注意を払っていることに気づきました。私の単体テストはこれらのほとんどをキャッチしますが、修正するのは面倒で、コーディング時に名前を覚えておく必要があります。これらのタイプミスについて警告できるものはありますか?

4

3 に答える 3

3

私たちが使用する戦略の 1 つは、ハッシュを定義し、それをセッターとゲッターに使用することです。

var ATTRS = {
    attr1: 'attr1',
    attr2:  'attr2'
}

model.set (ATTRS.attr1, 'attr1_val');
model.get (ATTRS.attr1);

JS ではハッシュの左側で変数を使用できないため、これを使用できない場合もあります。しかし、ほとんどの場合、単純なタイプミスをなくすのに役立ちます

{ ATTRS.attr: 'def_val' }  // this will give an error

この助けを願っています

于 2013-08-13T04:08:36.517 に答える
1

まず、_super プラグインをインストールします。

https://github.com/lukasolson/Backbone-Super

次に、抽象モデルを作成します。

YourAbstractModel = Backbone.Model.extend({
    get : function(attr){
        if( !_.has(this.defaults, attr) ){
            throw 'Invalid attribute: ' + attr;
        } 

        return this._super(attr);
    }        
});

モデルは Backbone.Model の代わりに抽象を拡張する必要があります (デフォルトを設定する必要があります)。

于 2013-08-13T18:28:01.920 に答える