Person = Backbone.Model.extend(
defaults:
name: 'Jony James'
age: 30
occupation: 'developer'
validate: (attrs) ->
if attrs.age < 0
return 'Age must be positive, stupid.'
if not attrs.name
return 'A person must have a name! fool.'
work: ->
@get('name') + " is working."
)
PersonView = Backbone.View.extend({
tagName: 'li'
#template: _.template($('#personTemplate').html())
template: "#personTemplate"
initialize: ->
@render()
render: ->
template = _.template($(@template))
@$el.html(template)
})
person = new Person
personView = new PersonView(model: person)
$(document.body).append personView.el
沒有方法 '替換' 在我index.html
遺漏的類型錯誤:對象[對象對象]與Backbone.js的和CoffeeScript的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script id="personTemplate" type="text/template">
<strong><%= name %></strong> (<%= age %>) - <%= occupation %>
</script>
<script src="js/underscore.js"></script>
<script src="js/jquery.js"></script>
<script src="js/backbone.js"></script>
<script src="js/main.js"></script>
</body>
</html>
隨着template: _.template($('#personTemplate').html())
和@$el.html(@template(@model.toJSON()))
工作正常。
但隨着main.js
當前版本我得到這個錯誤在谷歌瀏覽器控制檯:
Uncaught TypeError: Object [object Object] has no method 'replace'
哪裏錯誤?
謝謝!
我熟悉的骨幹,而與這樣的CoffeeScript原諒我,如果我不正確的閱讀,但它看起來好像你不實際在渲染時將模型/變量傳遞到模板中? – DigTheDoug