9

小さなプロジェクトを作ろうとして、バックボーンjsを学んでいます。

of te ページで、require.js と text.js を cloudflare CDN からロードします。

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.8/require.min.js">//</script>

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/require-text/2.0.10/text.js">//</script>

「ボックス」と呼ばれるバックボーン ビューを作成しました。

var Boxes = Backbone.View.extend({

        // Choose an element.
        el : '.content',

        render : function () {

            // Captur "this" -> the backbone view itself.
            var that = this;

            $(this.el).html('how do I load a html template here?');

        }
    });

問題:

  1. ページに text.js プラグインを追加すると、次のエラーが発生します。

    無名の define() モジュールの不一致: function (module) { 'use strict'; ……

したがって、require.js と text.js の両方をロードすることはできません。他のスクリプトがない空白のページでも上記のエラーが発生します。

  1. require js をテキスト js で動作させた後、そのビューの HTML テンプレートをロードするにはどうすればよいですか?

現在、index.html ページでテンプレートをインラインで記述する方法を知っています。

私はこのようにします:

var Boxes = Backbone.View.extend({

    el : '.content',

    render : function () {

        var that = this; // This backbone view

        var template = _.template($('#user-list-template').html(), {});

        that.$el.html(template);
    }
});

ありがとうございました!

4

2 に答える 2

13

HTML ファイルでは、このindex.htmlに示すように requrejs をロードするだけです。

<script type="text/javascript" data-main="js/main" src="js/libs/require-2.1.2.min.js"></script>

上記の「data-main」は、requirejs にそのブートストラップ ファイルをロードする場所を指示します。この場合は、「js/main.js」の下にあります。

ファイルはこちらにあります。

main.js ファイルで、指定する必要があります。

require.config({ ... });

requirejs を設定します。

その後、「define()/require()」を使用して、次のようなテンプレートをロードできます...

define(['text!../../templates/app/content.about.html'],...);

完全な例については、こちらを参照してください。

于 2013-10-22T18:06:17.053 に答える