0

ローカライズされたテンプレートを使用したバックボーンのサンプル コードを作成しました。しかし、なぜ機能しないのかをデバッグすることはできません。私を助けてください。コードは以下のパスにあります。

http://jsfiddle.net/nagesforyou/kdDMK/

var resource = {localizedHeader : "localized header in english"};

var BaseView = Backbone.View.extend({
    localizedTemplate : function(element) {
        self : this;
        this.template = _.template(element.html());

        return function(data) {
            return self.template($.extend({},data,resource));
        };
    }
});

var DerivedView = BaseView.extend({
    initialize: function(options) {
        this.model = options.model;

        this.template = this.localizedTemplate($("#someTemplate"));
    },

    render : function() {
        var output = this.template(this.model.toJSON());
        this.$el.append(output);
        return this;
    }
});

var someModel = Backbone.Model.extend({

});

var mdl = new someModle({someNmae : "surendhar"});
var derivedView = new DerivedView({model: mdl, el:$('body')});
derivedView.render();


<script type="text/template" id="someTemplate">
    <div>
        Sometext
        <div> <%= localizedHeader%> </div>
        <div> <%= someName %> </div>
    </div>
</script>
Running....
4

1 に答える 1

0

次のコードを使用します。

var DerivedView = BaseView.extend({
    render : function() {
        rendered = $.tmpl($(this.template || this.options.template).template(), this.model.toJSON() );
        this.$el.html(rendered);
    }
});

そして、次のように呼び出します。

var derivedView = new DerivedView({model: mdl, el:$('body'), template: "#someTemplate"});
derivedView.render();

コードがお役に立てば幸いです。

于 2013-09-30T10:43:20.607 に答える