2013-11-11 4 views
1

У меня небольшая проблема, когда вы хотите отображать данные на одном из моих представлений ejs. Я отправляю параметры в представление, но это значение не отображается в представлении, вместо этого оно отображается как пустое пространство.Canjs view not render data

;(function(namespace, undefined) { 
'use strict'; 

var PageHeader = can.Control({ 
    defaults: {   
    } 
}, { 
    'init': function(element, options) { 
     var self = this; 
     $('body').append(can.view('js/views/header.ejs', {data: 'foo'})); 
    }, 
    destroy: function() { 
     can.Control.prototype.destroy.call(this); 
    } 
    /*end of events*/ 
}); 
namespace.Controllers = namespace.Controllers || {}; 
namespace.Controllers.PageHeader = PageHeader; }(this)); 

//testing view header.ejs 
<div> 
     <%= this.data %> 
    </div> 

Вид отображается как пустое место, и объект пуст. Я что-то упускаю, любая помощь приветствуется!

+1

Какая версия вы используете? – Daff

+1

попробуйте просто <%= data %> – Thomas

+1

В конечном итоге это версия. Я перешел на старый, и он отлично работал. Есть ли что-то другое с версией последних версий на их сайте? – rdk1992

ответ

0

Начиная с мая 2.0 mustache - это рендерер рендеринга по умолчанию, а ejs поддерживается, если вы добавите его в свою сборку. Поэтому, если вы используете 2.0 add EJS для сборки сборки, а также в вашем can.view, укажите тип файла (т. Е.). view('myfile.ejs', data);

+0

Как это сделать, если я использую скриптовый тег для размещения содержимого ejs? – pravin