Mẫu trông giống như thế này.khi chuyển một biến vào mẫu xương sống, cách tham chiếu nó trong mẫu?
<div>
<H5>Status for your request</H5>
<table>
<tbody>
<tr>
<th>RequestId</th>
<th><%=id%></th>
</tr>
<tr>
<th>Email</th>
<th><%=emailId%></th>
</tr>
<tr>
<th>Status</th>
<th><%=status%></th>
</tr>
</tbody>
</table>
</div>
Đây là Javascript chế độ xem hiển thị trang.
window.StatusView = Backbone.View.extend({
initialize:function() {
console.log('Initializing Status View');
this.template = _.template(tpl.get('status'));
},
render:function (eventName) {
$(this.el).html(this.template());
return this;
},
events: { "click button#status-form-submit" : "getStatus" },
getStatus:function(){
var requestId = $('input[name=requestId]').val();
requestId= $.trim(requestId);
var request = requests.get(requestId);
var statusTemplate = _.template(tpl.get('status-display'));
var statusHtml = statusTemplate(request);
$('#results-span').html(statusHtml);
}
});
Khi nhấp chuột vào đầu vào, yêu cầuId được đọc và trạng thái được nối vào phần tử html có id 'khoảng kết quả'.
Lỗi xảy ra khi thay thế các giá trị trong mẫu html với các giá trị biến.
var statusTemplate = _.template(tpl.get('status-display'));
var statusHtml = statusTemplate(request);
Hiển thị không thành công với lỗi sau.
Uncaught ReferenceError: emailId is not defined
(anonymous function)
_.templateunderscore-1.3.1.js:931
window.StatusView.Backbone.View.extend.getStatusstatus.js:34
jQuery.event.dispatchjquery.js:3242
jQuery.event.add.elemData.handle.eventHandle
Cảm ơn bạn đã gợi ý. Thay vì truyền mô hình Backbone, tôi đã truyền một đối tượng javascript thuần túy được tạo ra từ mô hình. 'var data = {id: request.get ('id'), emailId: request.get ('emailId'), trạng thái: request.get ('status')};'. Bây giờ mẫu đang hiển thị nó tốt. Sự khác nhau giữa mô hình BackBone và đối tượng JS thuần túy là gì? – Nambi
@Nambi: Chế độ xem thường hiển thị các mô hình hoặc bộ sưu tập trong Backbone và mô hình hoặc bộ sưu tập đó nằm trong ['this.model' hoặc' this.collection'] (http://documentcloud.github.com/backbone/#View-constructor) .Sau đó, bạn dịch mô hình/tập hợp thành cấu trúc dữ liệu JavaScript đơn giản bằng phương thức ['toJSON'] (http://documentcloud.github.com/backbone/#Model-toJSON). Nếu 'request' là một mô hình Backbone thì' var data = {...} 'của bạn giống với' var data = request.toJSON() 'ngoại trừ' toJSON' sẽ bao gồm tất cả các thuộc tính 'request'. Các mẫu không quan tâm, nó chỉ muốn một đối tượng với các phím bên phải. –