模板不呈现下划线错误

时间:2015-02-10 19:03:06

标签: javascript jquery backbone.js requirejs underscore.js

嗨,我是使用require和下划线的骨干新手。想要渲染模板,请更正我。不知道我哪里出错了。

mainParentTemplate.html

<div>
      manojbojja
</div>

mainWidgetnew.js

define(['jquery','underscore','backbone',
    'text!app/templates/main/mainParentTemplate.html',
    'masonry',
    'imagesLoaded',
    'Aviary',
    'date',
    'datetimepicker',
    'infinitescroll',
    'bootstrap'],
    function($, _, Backbone,
             MainParentViewTemplate){

    var RssParentView = Backbone.View.extend({
        template: MainParentViewTemplate,

        initialize: function() {
            this.render();
        },

        render: function() {
            this.$el.html(_.template(this.template,{}));
        }
    });

    var FeedsWidget = function() {

        this.render = function(el) {
            this.view = new RssParentView({el: el});
        };

        return this;
    }

    return FeedsWidget;

});

主html页面脚本

<div id="main-widget">
</div>

<script>
    window.init = function(){
        require(['app/mainWidgetnew'], function(FeedsWidget){

            var mainWidgetnew= new FeedsWidget();
            mainWidgetnew.render("#main-widget");
        });
    };
</script>

我收到了uderscore错误“undefined is is a function”

this.$el.html(_.template(mainParentTemplate));

1 个答案:

答案 0 :(得分:0)

下划线的_.template函数将返回可以评估渲染的函数。

您可以在渲染中执行以下操作:

var template = _.template(this.template); 
this.$el.html(template(paramsForTemplate));

其中paramsForTemplate是可选的,可用于将参数传递给模板。