2014-10-12 7 views
0

Im новые в позвоночнике Im в настоящее время обучения о шаблонах, однако у меня есть этот выход ошибку неперехваченным TypeError: Не удается прочитать свойство «заменить» неопределенных underscore.js: 1305 _.template underscore.js: 1305 (анонимная функция)Backbone генерирует ошибку, когда я использую шаблоны

Вот мой index.js

var Person = Backbone.Model.extend({ 

    defaults: { 
     name: 'ozan onder', 
     age: 20, 
     occupation: 'worker' 
    } 
}); 

var PersonView = Backbone.View.extend({ 
    //by default the tagname is a div element 
    //but we will override it 
    tagName: 'li', 

    //% is how can access to a property name 
    // create templer 
    template: _.template($('#personTemplate').html()), 

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

    render: function() { 
     //set the html 
     this.$el.html(this.template(this.model.toJSON())); 
    } 

}); 

var person = new Person; 
var personView = new PersonView({ model: person }); 

console.log(personView.el); 

And here is my index.html 

<!DOCTYPE html> 
<html> 
    <head> 
    <!--this import order is important--> 
    <script src="../../library/jquery-1.8.2.min.js"></script> 
    <script src="../../library/underscore.js"></script> 
    <script src="../../library/backbone.js"></script> 
    <script src="index.js"></script> 

    </head> 

    <body> 

    <script id="personTemplate" type="text/template"> 
     <strong><%= name %></strong> (<%= age %>) - <%= occupation %> 

    </script> 

    </body> 

</html> 
+0

Убедитесь, что вы завершаете код в готовом jQuery func, чтобы он не срабатывал до загрузки вашей страницы. Возможно, вы действуете на элемент DOM, который не существует, когда ваш код инициализируется. –

+0

Thanksss a lottttt :) – ozimax06

+0

@jamesemanon не могли бы вы представить, что в форме ответа, чтобы его можно было принять? В противном случае этот вопрос будет томиться в SO 'без ответа на очередь вопросов навсегда :-) – machineghost

ответ

1

Убедитесь, что вы оборачивать код в JQuery готов FUNC, так что он не срабатывает до тех пор, пока загружается ваша страница. Возможно, вы действуете на элемент DOM, который не существует, когда ваш код инициализируется.

$(document).ready(function() { 
    // put your code here 
}); 

OR - They both accomplish the same thing. 


$(function() { 
    // put your code here 
}); 
Смежные вопросы