Tôi đang cố gắng tạo một ứng dụng backbone.js nhỏ, nhưng phải vật lộn với thứ tự của sự vật.view backbone.js hiển thị trước khi tìm nạp mẫu
Trong file html của tôi, tôi có hai khối kịch bản trong tiêu đề:
<script type="text/template" id="model-template">
<a href="#"><%= title %></a>
</script>
<script type="text/javascript">
jQuery(function(){
window.model.fetch();
});
</script>
Trong app.js của tôi, tôi đã xác định một mô hình đơn giản, xem và một router.
(function($) {
window.MyModel = Backbone.Model.extend({
url: '/mymodel'
});
window.mymodel = new MyModel();
$(document).ready(function() {
window.MyModelView = Backbone.View.extend({
template: _.template($('#mymodel-template').html()),
initialize: function() {
_.bindAll(this, 'render');
},
render: function() {
var renderedContent = this.template(this.model.toJSON());
$(this.el).html(renderedContent);
return this;
}
});
});
window.MyApp = Backbone.Router.extend({
routes: {
'': 'home'
},
initialize: function() {
this.myModelView = new MyModelView({
model: window.mymodel
});
},
home: function() {
var $body = $('body');
$body.empty();
$body.append(this.myModelView.render().el);
}
});
$(function() {
window.App = new MyApp();
Backbone.history.start({pushState: true});
});
})(jQuery);
Ứng dụng được phục vụ bằng ứng dụng sinatra đơn giản. Url /mymodel
phục vụ tệp json tĩnh:
{
"title": "My Model",
}
Khi tải các ứng dụng, tôi nhận được một lỗi trong giao diện điều khiển javascript:
Uncaught ReferenceError: title is not defined
Vấn đề có vẻ là, rằng quan điểm làm cho bản thân trước mô hình được lấy từ máy chủ. Tại sao vậy?
Hôm qua, tôi đã theo dõi hai lần phát sóng màn hình backbone.js đầu tiên từ PeepCode. Tôi đã cố gắng so sánh ứng dụng của mình với ứng dụng đã xuất hiện trên màn hình, nhưng không thể thấy lý do tại sao ứng dụng của tôi muốn hoạt động.
Mọi đề xuất?
Tôi mất nhiều giờ ... GIỜ để tìm ra rằng đây là lý do tại sao ứng dụng của tôi không hoạt động, đã làm việc một số lần không phải những người khác hoặc làm việc trên một số trình duyệt chứ không phải các trình duyệt khác. Loại một sai lầm tân binh khi bạn nghĩ về cách lấy nên làm việc tôi giả sử. Bài học kinh nghiệm. Tôi nghĩ rằng quá nhiều ví dụ Backbone ra có sử dụng dữ liệu mã hóa cứng và các khái niệm rất quan trọng như mùa thu này bởi các bên. – IcedDante