0

私はアプリを開始しています(requirejsは初めてです)アプリのrequirejsシングルトンモデル...基本的に、テンプレートの配列をユーティリティjsに渡し、テンプレートを適切なビューに割り当てています...

私が使う :

app.js、singleton.js (オブジェクトを返すため)、インデックス ページ テンプレートを実装するための index.js、テンプレートを適切なビューに割り当てるためのユーティリティ...

しかし、index.js では、this.template をコンソールしているときに... "function (n){return e.call(this,n,w)}" という結果が得られます - 私のアプローチが間違っていることは理解しています。 . 誰かが私に正しい方法を教えてくれますか..または私が何をしているのか間違っていることを強調してください..?

前もって感謝します..

ここに私のすべてのjsファイルがあります:

app.js:-

requirejs.config({
    baseUrl: 'js',
    paths: {
        "jquery"    : 'lib/jquery-1.9.1.min',
        "underscore": "lib/underscore-min",
        "backbone"  : "lib/backbone-min",
        "singleton" : "utils/singleton",
        "model"     : "models/model",
        "index"     : "views/index",
        "utils"     : "utils/utils",
    },
    shim:{
        "underscore":{
            exports: '_'
        },
        "backbone":{
            exports: 'Backbone',
            deps:['underscore']
        },
        "utils" : {
            deps:['index'],
            deps:['model']
        }
    }
});

require(["jquery","underscore","backbone","singleton","utils","index"],function ($,_,Backbone,obj) {
    obj.makeTemp(['index']);
});

singleton.js (オブジェクトを返すだけ)

define(function () {
    var EDMS = EDMS || {};
    return EDMS;
})

utility.js (テンプレートを割り当てる場所)

define(["underscore", "singleton","model","index"],function (_,obj,model) {

    var EDMS = obj || {};

        EDMS.makeTemp = function(views){
            $.each(views, function(index,view){
                if(view){
                        var temp = $.get('templates/' + view + '.html')
                        .done(function(data){
                            EDMS[view].prototype.template = _.template(data);
                            new EDMS.index;
                        })
                }else{
                        console.log("No template found!")
                    }

                });
        }

    return EDMS;

})

最後に私のindex.js。utilities.jsによって割り当てられたテンプレートを取得する必要があります

define(["singleton","underscore","backbone","utils"],function (obj,_,Backbone) {

        var EDMS = obj || {};

        EDMS.index = Backbone.View.extend({
            initialize:function(){
                console.log(this.template);
                            error i am getting as "function (n){return e.call(this,n,w)} "
            }
        });

})
4

1 に答える 1

0

これは私にとってはうまくいきます:

define(['singleton',"underscore","backbone"],function (obj,_,Backbone) {

    window.EDMS = obj || {};

    var temps = function(views){
        var tempts = [];
        $.each(views, function(i,view){
            var data = $.get("templates/"+views+".html");
            data.done(function(res){
                EDMS[views].prototype.template = _.template(res);
                new EDMS.index;
            });
        })
    };
    return temps;
});

全てに感謝。

于 2013-05-10T11:46:55.160 に答える