1

モデルがあります。そのモデルに追加するメモがあります。そこに問題はありません。

ビューをインスタンス化するときに、data.objectsにメモの内容が含まれているかどうかを確認したいと思います。

ifステートメントはどこに置きますか?ビューレンダリングで?そして、どうすればそれをテストできますか。

ここにjsとバックボーンnoobがあるので、基本が欠けていることを許してください。

Lemmeは知っており、感謝しています。

チュートリアルへの参照は大歓迎です。

更新:これが私のモデルのビューです

var BlasterView = Backbone.View.extend({

    tagName: 'li',
    className: 'blaster',

    events: {

        'click .td-blaster a': 'done'

    },

    initialize: function() {

        _.bindAll(this, 'render');

    },

    render: function(){

        this.$el.html(ich.blasterTemplate(this.model.toJSON()));
        return this;

    },

    done: function(){

        this.model.toggle();

        this.$el.animate({
            backgroundColor:'#faeca9'
        }, 600 ).delay(600).fadeOut('fast');

        return false;

    }

});
4

1 に答える 1

5
render: function(){

    if( this.model.get('particularField') ){
       console.log('Particular Field has a value');
    }else{
       console.log('Particular Field does NOT have a value');
    }

    this.$el.html(ich.blasterTemplate(this.model.toJSON()));
    return this;

},

フィールドもオブジェクトのインスタンスであることを意味する場合は、これを実行し、specificFieldが空でないことを確認し、ネストされたプロパティが設定されていることも確認します。

if( this.model.get('particularField') && 
this.model.get('particularField').someChildAttr){

アップデート:

「バックボーンはhasプロパティをサポートするようになりました」(@TyroneMichael経由)。したがって、次を使用できます。

this.model.has('particularField')
于 2012-08-07T03:16:55.190 に答える