0

我正在启动一个应用程序(我是requirejs 的新手)requirejs 单例应用程序模型...基本上我将模板数组传递给我的实用程序js,并将模板分配给适当的视图...

我用 :

app.js,singleton.js(返回对象),index.js 用于实现索引页面模板,用于将模板分配给适当视图的实用程序...

但是在 index.js 中,当我控制台 this.template 时......我得到的结果是“function (n){return e.call(this,n,w)}” - 我知道我的方法是错误的。 . 任何一次都可以给我正确的方式给我.. 或突出我错了我做什么pelase..?

提前致谢..

这是我所有的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,我应该在其中获取由实用程序分配的模板

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 回答