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 Backbone.js为什么可以';不要使用父get方法_Javascript_Backbone.js - Fatal编程技术网

Javascript Backbone.js为什么可以';不要使用父get方法

Javascript Backbone.js为什么可以';不要使用父get方法,javascript,backbone.js,Javascript,Backbone.js,奇怪的是,我将这两部分代码放在两个文件中,base.js和filter.js: //泛型对象类的定义 var baseObject = Backbone.Model.extend({ copy: function(){ _clipBoard=this; }, fetch: function(){ var obj =this; var criteriaString = encodeURI(JSON.stringify({_id

奇怪的是,我将这两部分代码放在两个文件中,base.js和filter.js: //泛型对象类的定义

var baseObject = Backbone.Model.extend({
    copy: function(){
        _clipBoard=this;
    },
    fetch: function(){
        var obj =this;
        var criteriaString = encodeURI(JSON.stringify({_id:this.get("_id")}));
        var getUrl = _rootUrl+'/nalab/'+this.getMongoType()+'/';
        $.getJSON(getUrl + "_find", 'criteria=' + criteriaString, function(data){
            var results = data.results;
            obj.set(results[0]);
        });
    }
});

//definition of a baseObject subclass called filter with speical methods
var Filter = baseObject.extend({
    getTitleField : function(){
        return 'title';
    },
    getMongoType: function(){
        return 'filter';
    }
});
然后我在firefox 5中执行以下代码:

var filter = new Filter({_id:{$oid:"4e43ca017c36ec707b755659"}});
filter.fetch();
console.log(filter);
/*
Firebug shows an object with "attributes" that contains a field 'title'='Filtres avances'
*/
console.log(filter.get('title');
/*
Firebug says undefined
*/

那个么,为什么“super”get方法对Filter类不起作用,尽管它对baseObject类起作用并且从不重写它呢?

因为您试图在ajax请求完成并且数据设置为model之前获取
title
。 如果要获取数据,请尝试以下操作:

var filter = new Filter({_id:{$oid:"4e43ca017c36ec707b755659"}});
filter.bind('change', function(model) {
    console.log(model.get('title');
});
filter.fetch();