Вложение зависимостей Backbone.js Views с помощью Require.js Backbone.js ведет к представлению, загружаемому как объект, а не как функция

Я использую Require.js с Backbone.js и Underscore.js, и у меня есть вложенное представление, которое появляется как неопределенное при вызове в качестве зависимости, но когда у меня есть два представления в одном модуле, они работают нормально. Мне интересно, что я делаю неправильно. Вот пример:

ребенок-view.js

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

parentview.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;
});

Я получаю «Uncaught TypeError: undefined не является функцией» при попытке вызвать новый ChildView. Если я ссылаюсь на ChildView за пределами Parentview, но внутри parentview.js, он отображает представление, но как объект.


person user784756    schedule 29.06.2012    source источник


Ответы (2)


Просто из вашего кода не должно быть проблем, я проверил ваш код, на самом деле не нашел проблемы. Это мой тестовый код, вы можете попробовать его: http://files.cnblogs.com/justinw/test_byfejustin.zip

Я думаю, что это может быть проблема с вашим «require.js», вы можете заменить свой «require.js» на мой «test_byfejustin\js\libs\require\require.js» в моем пакете кода и попробовать еще раз.

person Justin wong    schedule 02.07.2012

Имена переменных чувствительны к регистру. В child-view.js вы возвращаете «ChildView», который не определен (вы назначили childView).

person Tyler    schedule 29.06.2012