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_Requirejs - Fatal编程技术网

Javascript 错误:。。不是主干中的构造函数

Javascript 错误:。。不是主干中的构造函数,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我有一个非常基本的模型和控制器。但是当我执行脚本时,我得到以下错误:uncaughttypeerror:dropdownModel不是构造函数 型号: define(['backbone'], function(Backbone) { var dropdownModel = Backbone.Model.extend(); return { dropdownModel: dropdownModel }; }); define(['backbone', '

我有一个非常基本的模型和控制器。但是当我执行脚本时,我得到以下错误:
uncaughttypeerror:dropdownModel不是构造函数

型号:

define(['backbone'], function(Backbone) {
    var dropdownModel = Backbone.Model.extend();
    return {
        dropdownModel: dropdownModel
    };
});
define(['backbone', 'dropdownModel'],
  function(Backbone, dropdownModel ) 
  {
    var dropdownModel = new dropdownModel({});
});
requirejs.config({
    baseUrl: "../Scripts",
    paths: {
        requireLib: "../Scripts/require",
        dropdownModel: "../Models/dropdownModel",
        firstDashboardController: "../Controller/firstDashboardController",
    }
});
控制器:

define(['backbone'], function(Backbone) {
    var dropdownModel = Backbone.Model.extend();
    return {
        dropdownModel: dropdownModel
    };
});
define(['backbone', 'dropdownModel'],
  function(Backbone, dropdownModel ) 
  {
    var dropdownModel = new dropdownModel({});
});
requirejs.config({
    baseUrl: "../Scripts",
    paths: {
        requireLib: "../Scripts/require",
        dropdownModel: "../Models/dropdownModel",
        firstDashboardController: "../Controller/firstDashboardController",
    }
});
需要模块:

define(['backbone'], function(Backbone) {
    var dropdownModel = Backbone.Model.extend();
    return {
        dropdownModel: dropdownModel
    };
});
define(['backbone', 'dropdownModel'],
  function(Backbone, dropdownModel ) 
  {
    var dropdownModel = new dropdownModel({});
});
requirejs.config({
    baseUrl: "../Scripts",
    paths: {
        requireLib: "../Scripts/require",
        dropdownModel: "../Models/dropdownModel",
        firstDashboardController: "../Controller/firstDashboardController",
    }
});

您正在导出对象,而不是此行上的模型本身:

return {
    dropdownModel: dropdownModel
};
您可能只想这样做:

return dropdownModel;

您正在导出对象,而不是此行上的模型本身:

return {
    dropdownModel: dropdownModel
};
您可能只想这样做:

return dropdownModel;

您应该记录什么是
dropdownModel
。它可能是一个对象,您可能需要在模型文件中执行
新建dropdownModel.dropdownModel()
,或者简单地
返回dropdownModel
,您是对的。成功了。你能不能把它作为一个答案,这样它会帮助别人。另外,这是否意味着当我把var
x=newx()放进去时我基本上是在创建整个文件的实例,这毫无意义。但是当我执行
var x=new x.x()
时,实际上我正在调用类
x
。你能解释一下你的答案吗。谢谢<代码>新建
只能在函数或类上调用。在您的示例中,您试图对对象调用
new
dropdownModel.dropdownModel
只是对实际函数(您创建的扩展模型)的引用。顺便说一句,您真的应该将您的模型称为
dropdownModel
,实例称为
dropdownModel
,否则您会让试图阅读您的代码的人感到困惑。我自己也感到困惑。事实上,为了让事情顺利进行,我在任何地方都使用相同的方法。但我认为这很糟糕。我会注意你的建议。你应该记录什么是
dropdownModel
。它可能是一个对象,您可能需要在模型文件中执行
新建dropdownModel.dropdownModel()
,或者简单地
返回dropdownModel
,您是对的。成功了。你能不能把它作为一个答案,这样它会帮助别人。另外,这是否意味着当我把var
x=newx()放进去时我基本上是在创建整个文件的实例,这毫无意义。但是当我执行
var x=new x.x()
时,实际上我正在调用类
x
。你能解释一下你的答案吗。谢谢<代码>新建
只能在函数或类上调用。在您的示例中,您试图对对象调用
new
dropdownModel.dropdownModel
只是对实际函数(您创建的扩展模型)的引用。顺便说一句,您真的应该将您的模型称为
dropdownModel
,实例称为
dropdownModel
,否则您会让试图阅读您的代码的人感到困惑。我自己也感到困惑。事实上,为了让事情顺利进行,我在任何地方都使用相同的方法。但我认为这很糟糕。我会注意你的建议。