Ember.Handlebars.compile हैंडलबार्स आउटपुट के बजाय कोड लौटाता है

मेरे पास एक ऐसा दृश्य है जो इस तरह दिखता है:

App.StarRatingView = Ember.View.extend({
    template: function() {
        return new Ember.Handlebars.compile('test')
    }
})

यह पृष्ठ में test डालने वाला है, लेकिन इसके बजाय यह compile() फ़ंक्शन की परिभाषा को सम्मिलित करता है:

function (context, options) { options = options || {}; var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); var compilerInfo = container.compilerInfo || [], compilerRevision = compilerInfo[0] || 1, currentRevision = Handlebars.COMPILER_REVISION; if (compilerRevision !== currentRevision) { if (compilerRevision < currentRevision) { var runtimeVersions = Handlebars.REVISION_CHANGES[currentRevision], compilerVersions = Handlebars.REVISION_CHANGES[compilerRevision]; throw "Template was precompiled with an older version of Handlebars than the current runtime. "+ "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+")."; } else {//Use the embedded version info since the runtime doesn't know about this revision yet throw "Template was precompiled with a newer version of Handlebars than the current runtime. "+ "Please update your runtime to a newer version ("+compilerInfo[1]+")."; } } return result; }

कोई अंदाजा ऐसा क्यों हो रहा है?

0

2 उत्तर

यह एक समारोह की उम्मीद नहीं है। यह काम कर जाना चाहिए

App.StarRatingView = Ember.View.extend({
    template: Ember.Handlebars.compile('test')
})

या इससे भी बेहतर:

App.StarRatingView = Ember.View.extend({
    templateName: 'test'
})

एम्बर अब दिए गए टेम्पलेट नाम का उपयोग करके दृश्य प्रस्तुत करेगा।

0
जोड़ा

आप संकलित आउटपुट की सामग्री में बस टेम्पलेट प्रॉपर्टी सेट कर सकते हैं:

App.StarRatingView = Ember.View.extend({
    template: Ember.Handlebars.compile('test')
})

http://emberjs.jsbin.com/uYOvUWU/1/edit

Also see the emberjs docs on using templates in views

0
जोड़ा