2

Backbone.js と Underscore.js で Require.js を使用しています。依存関係として呼び出されたときに未定義として表示されるネストされたビューがありますが、同じモジュールに 2 つのビューがある場合、それらは正常に動作します。私は何が間違っているのだろうかと思っています。次に例を示します。

child-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;
});

新しい ChildView を呼び出そうとすると、「Uncaught TypeError: undefined is not a function」というメッセージが表示されます。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」に問題がある可能性があると思います。コード パッケージで「require.js」を「test_byfejustin\js\libs\require\require.js」に置き換えて、もう一度やり直してください。

于 2012-07-02T08:18:00.413 に答える