在Marionette对象中监听变量的变化?

时间:2016-02-01 08:17:39

标签: backbone.js marionette

哪种事件方法可以帮助捕获对设置为'变量'的值的更改。在牵线木偶物中定义。

e.g:

var LoginModule = Marionette.Object.extend({

    initialize: function(options) {
        this.state = 'pending';
    },

    init: function(model) {
        model.fetch({validate:true})
        .done(function() {
            this.state = 'success';
        })
        .fail(function(res){
            console.log(res);
            this.state = 'failed';
        });

        return model;
    }
});

这里我想检测变量this.state的变化。是否有选项可以触发一次,比如listenToOnce?

用法:

var loginM = new LoginModule(); loginM.init(model);

1 个答案:

答案 0 :(得分:2)

修改 我想我找到了更好的解决方案。尝试如下。 首先,像这样更改你的init方法。

intent.putExtra(android.provider.MediaStore.Audio.Media.ENTRY_CONTENT_TYPE, "audio/aac");
intent.putExtra(android.provider.MediaStore.Audio.Media.MIME_TYPE, "audio/aac");
intent.putExtra(android.provider.MediaStore.Audio.Media.CONTENT_TYPE, "audio/aac");

之后你可以像下面一样抓住事件init: function(model) { model.fetch({validate:true}) .done(function() { this.state = 'success'; this.triggerMethod('state:changed'); }) .fail(function(res){ console.log(res); this.state = 'failed'; this.triggerMethod('state:changed'); }); return model; }

state:changed