2

我将 Require.js 与 Backbone.js 和 Underscore.js 一起使用,并且我有一个嵌套视图,当作为依赖项调用时,它会出现未定义,但是当我在同一个模块中有两个视图时,它们工作正常。我想知道我做错了什么。这是一个例子:

子视图.js

define([
'jQuery',
'Underscore',
'Backbone', 
], function ($, _, Backbone) {
var ChildView = Backbone.View.extend({
    initialize: function () {
        _.bindAll(this, 'render');
        this.render();
        },
    });
    return ChildView;
});

父视图.js

define([
'jQuery',
'Underscore',
'Backbone',
'src/views/child-view'
], function ($, _, Backbone, ChildView){
 var ParentView = Backbone.View.extend({

        initialize: function () {
            _.bindAll(this, 'render');

            this.render();
        },
       render: function () {
              child = new ChildView({});
       }
    });
    return ParentView;
});

尝试调用新的 ChildView 时收到“未捕获的类型错误:未定义不是函数”。如果我在 Parentview 之外但在 parentview.js 内部引用 ChildView,它会显示视图,但作为对象。

4

2 回答 2

0

变量名区分大小写。在 child-view.js 中,您返回的是未定义的“ChildView”(您已分配了 childView)。

于 2012-06-29T15:50:52.360 回答
0

只是从你的代码来看,应该没有问题,我测试了你的代码居然没有发现问题。这是我的测试代码,你可以试试: http://files.cnblogs.com/justinw/test_byfejustin.zip

我认为可能是你的“require.js”有问题,你可以在我的代码包中用我的“test_byfejustin\js\libs\require\require.js”替换你的“require.js”,然后再试一次。

于 2012-07-02T08:18:00.413 回答