Добрый день! Я пишу простенькое приложение на основе backbone+jquerymobile. Вопрос в следующем:
Когда я получаю данные с сервера, мне нужно правильно передать эти данные во вью, где они передаются в шаблон. Т.к .fetch() асинхронный, то просто передавать в render модель не получится, поэтому я попробовал сделать следующее:
Шаблон:
<script type="text/html" class="template" id="profile-form">
<div data-role="header">
<h3>Step 4</h3>
<a href="#main" data-theme="a">Home</a>
<a href="#logout" data-theme="a">logout</a>
</div>
<div data-role="content">
<h2 class="ui-li-heading"><%= username %></h2>
<p class="ui-li-desc"><strong><%= phone %></strong></p>
</div>
</script>
Модель:
var UserInfo = Backbone.Model.extend({
url: appConfig.baseURL + "users/",
});
Представление:
var ProfilePageView = Backbone.View.extend({
events: {
'click #edit': "edit"
},
initialize: function () {
this.template = $.tpl['profile-form'];
},
render: function (eventName) {
var that = this
this.model.fetch({
data: $.param({email: localStorage.getItem('user_email')}),
type: 'POST',
success: function (response) {
$(that.el).html(that.template(response.toJSON()));
}
});
return this;
},
edit: function () {
window.workspace.navigate('#account/edit', { trigger: true});
}
});
Код из routes:
profileInfo: function () {
var user = new UserInfo()
this.changePage(new ProfilePageView({ model: user }));
},
Теперь данные передаются в шаблон, но почему то не подгружаются стили. Я не совсем уверен, что я правильно сделал, поместив fetch в render, можете посоветовать, как сделать по уму.
Нашел, что мне может помочь метод reset, но где мне его передавать не совсем понимаю. Спасибо!