Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干提取过程_Javascript_Backbone.js_Backbone Model - Fatal编程技术网

Javascript 主干提取过程

Javascript 主干提取过程,javascript,backbone.js,backbone-model,Javascript,Backbone.js,Backbone Model,我有从服务器收集数据的主干模型: Job.Models.Response = Backbone.Model.extend({ defaults: { 'authStatus': false, 'id': '1', 'name': 'name', }, urlRoot: '/static/js/public/json/' }); 我有一个带有data id=“id from/static/js/public/json/”的按钮 如

我有从服务器收集数据的主干模型:

Job.Models.Response = Backbone.Model.extend({
    defaults: {
    'authStatus': false,
    'id': '1',
    'name': 'name',
    },

        urlRoot: '/static/js/public/json/'
    });
我有一个带有data id=“id from/static/js/public/json/”的按钮

如果在获取后我将console.log记录我的模型,它不会更新,但数据获取成功。 这里会有什么问题?

这里我初始化了我们的插件:

var responseModel = new Job.Models.Response;
var response = new Job.Views.Response({ model: responseModel });

我解决了我的问题。最后一个观点

    Job.Views.Response = Backbone.View.extend({
    el: '.ra-response-button',

    events: {
        "click": "load"
    },

    load: function () {
        var that = this;

        var info = that.$el.data();

        that.model.set({ id: info.id});
        that.model.fetch({
            success: function() {
                if (that.model.attributes.authStatus === true) {
                    new Job.Views.ResponseForm({ model: that.model })
                }

                else {
                    new Job.Views.ResponseAuth({ model : that.model })
                }
            },

            error: function() {
                alert('Error, repeat please.')
            }
        });
    }
});

很高兴你明白了。您始终可以将成功和错误回调传递给fetch()和save(),但是在完成fetch或save时附加调用的回调的一种更强大的方法是利用返回的延迟对象。fetch()和save()都返回一个jQuery延迟对象,允许您执行类似于
$.when(that.model.fetch()).done(function(){/*在这里做某事*/})的操作--请记住,使用$.when()可以将尽可能多的延迟对象传递给它,并等待它们全部完成。我经常用它作为主干。
    Job.Views.Response = Backbone.View.extend({
    el: '.ra-response-button',

    events: {
        "click": "load"
    },

    load: function () {
        var that = this;

        var info = that.$el.data();

        that.model.set({ id: info.id});
        that.model.fetch({
            success: function() {
                if (that.model.attributes.authStatus === true) {
                    new Job.Views.ResponseForm({ model: that.model })
                }

                else {
                    new Job.Views.ResponseAuth({ model : that.model })
                }
            },

            error: function() {
                alert('Error, repeat please.')
            }
        });
    }
});