0
어제 제가 Backbone.js로 시작했는데 그 부분이 파싱 된 것을 볼 수는 있지만 왜 템플릿이 보이지 않는지 알 수 없습니다. 백본 : 템플릿이 표시되지 않습니다
이
내 템플릿입니다 :<script type="text/template" id="area-template">
<div id="area">
<label for="alto">Alto</label>
<input id="alto" name="alto" value=""/>
<label for="ancho">Ancho</label>
<input id="ancho" name="ancho" value=""/>
</div>
<div id="resultado" style="margin-top: 2em">
El área de un rectángulo de alto <%-alto %> y ancho <%- ancho %> es <b><%- area %></b>
</div>
</script>
그리고 이것은 내 백본 코드 : 나는 오류, 그냥 빈 페이지를받지 못했습니다
<script type="text/javascript">
var Rectangulo = Backbone.Model.extend({
defaults: {
alto: 4,
ancho: 3
},
area: function() {
return this.get('alto') * this.get('ancho');
},
toTemplateJSON: function() {
var json = this.toJSON();
json.area = this.area();
return json;
}
});
var Vista = Backbone.View.extend({
el: '#area',
events: {
"change input[name='alto']": 'onChangeAlto',
"change input[name='ancho']": 'onChangeAncho'
},
template: _.template($('#area-template').html()),
initialize: function() {
_.bindAll(this, 'render', 'onChangeAlto', 'onChangeAncho');
this.model = new Rectangulo();
this.model.on('change', this.render);
this.render();
},
onChangeAlto: function() {
var v = parseInt($("input[name='alto']", this.el).val());
this.model.set('alto', v);
},
onChangeAncho: function() {
var v = parseInt($("input[name='ancho']", this.el).val());
this.model.set('ancho', v);
},
render: function() {
$("input[name='alto']").val(this.model.get('alto'));
$("input[name='ancho']").val(this.model.get('ancho'));
this.$el.html(this.template(this.model.toTemplateJSON()));
}
});
var v = new Vista();
</script>
. 내가 < %- undefinedOne %>
에 <%- alto %>
을 변경하여, 예를 들어 템플릿을 (방해하면 나는 콘솔 (ReferenceError: undefinedOne is not defined
)에서 오류가 발생 할 그러나 왜 HTML이 그려되지 않는
을 @fbynite하지만이'DOM' 요소의 답변 결과는 같은'id' 속성을 가진. – fbynite
예. 그 점을 지적 해 주셔서 감사합니다. 나는 OP가 자신의 템플릿에도 div # 영역을 가지고 있다는 것을 알아 차리지 못했습니다. http://jsfiddle.net/sbjaz/15/ –