Я изучаю ember в эти дни, и у меня возникла проблема с ссылкой на помощник. Если я использую его для создания ссылки для вложенного маршрута, он отлично работает (если щелкнуть ссылку, к элементу будет добавлен «активный» класс, как описано в документах), пока я не перезагружу страницу. Когда я перезагружаю страницу, содержимое для вложенного розыгрыша будет правильно загружено в {{outlet}}, но ссылка потеряет свой «активный» класс. Что я делаю не так?Ссылка на вложенный ресурс теряет активный класс после перезагрузки страницы
JavaScript:
window.App = Ember.Application.create({ rootElement: '#app' });
App.Router.map(function() {
this.resource('notes', { path: '/' }, function() {
this.route('show', { path: '/:note_id' });
});
});
App.NotesRoute = Em.Route.extend({
model: function() {
return App.Note.find();
}
});
App.NotesShowRoute = Em.Route.extend({
model: function (params) {
return App.Note.find(params.note_id);
}
});
App.Note = Em.Object.extend();
App.Note.reopenClass({
find: function(id) {
var notes = [
{
id: 1,
title: 'abc',
text: 'lorem ipsum text 1111111'
},
{
id: 2,
title: 'def',
text: 'lorem ipsum text 2222222'
}
];
return id ? notes[parseInt(id) - 1] : notes;
}
});
HTML:
<div id="app" class="row">
<script type="text/x-handlebars">
<div class="col-md-2">
<h2>Tags</h2>
</div>
{{outlet}}
</script>
</div>
<script type="text/x-handlebars" data-template-name="notes">
<div class="col-md-3">
<h2>Notes</h2>
{{#each}}
{{#link-to 'notes.show' this}}{{title}}{{/link-to}}
{{/each}}
</div>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="notes/show">
<div class="col-md-7">
<h2>{{title}}</h2>
<p>{{text}}</p>
</div>
</script>
Я только что протестировал код и могу подтвердить, что он работает отлично. Я вообще не знал, что проблема в модели не в маршрутизаторе/шаблоне. Большое спасибо за Вашу помощь! – Lucas