1
핸들 막대 및 백본으로 모델 속성을 표시하는 데 이상한 어려움이 있습니다.여기에 코드가 있습니다.핸들 막대가 backbone.js 모델 속성을 읽지 않습니다
MYAPP.Menu.Items = Backbone.Collection.extend({
model: MYAPP.Menu.Item,
url: 'menuItems'
});
MYAPP.Menu.ItemView = Backbone.View.extend({
initialize : function() {
this.model = new MYAPP.Menu.Item();
this.model.on('all', this.render, this);
},
render : function() {
var source = $("#index-template").html();
var template = Handlebars.compile(source);
console.debug(this.model.get("title")); <- shows default value
var html = template(this.model);
console.debug(html);
this.$el.html(html);
return this;
}
});
그리고 템플릿
:MYAPP.Menu = {}; MYAPP.Menu.Item = Backbone.Model.extend({ urlRoot : 'menuItem', defaults: { title: "Menu Item Title default", price: "menu item price default" }, });
<script type="text/x-mustache-template" id="index-template"> <div class="entry"> <h1>{{title}}</h1> <div class="body"> {{price}} </div> </div> </script>
출력은 데이터 밖으로 바로 태그에 불과하다. 콘솔에서도 오류가 발생하지 않습니다. 아이디어가 있으십니까?
것은 내가
initialize : function() { this.title = "Menu Item Title default"; this.price = "menu item price default"; },
모든 작품을 잘 사용하고 있습니다 :
이 잘 나는 해결책을 가지고 있습니다. 사람이 기본적으로
var html = template(this.model.toJSON());
해야이
고마워요,하지만 여전히 왜 내가 기본 대신 생성자를 사용할 때 작동하는지 설명하지 않습니다. – Gleeb
거기에 대한 답을 업데이트했습니다. – Lukas