У меня есть приложение Ember JS 1.5.1 с бета-версией ember-data 1.0.8. Есть ДВА простых скомпилированных шаблона, соответствующие части:
показатель
<div class="container-fluid">
<div class="col-md-2 sidebar">
<ul class="nav nav-sidebar">
{{#each model}}
<li>
{{#link-to 'activities' this}}{{name}}{{/link-to}}
</li>
{{/each}}
</ul>
</div>
<div class="col-md-10 col-md-offset-2">
{{outlet}}
</div>
</div>
виды деятельности
<div>
<ul>
{{#each model.activities}}
<div class="row">
<p>activity {{id}} is {{name}}</p>
</div>
{{/each}}
</ul>
</div>
Приложение также простое, оно сводится к нескольким битам данных приборов и некоторым функциям маршрута:
window.App = Ember.Application.create();
App.ApplicationAdapter = DS.FixtureAdapter;
App.Router.map( function(){
this.resource('index', {path: '/'}, function(){
this.resource('activities', { path:':name'}, function(){
this.resource('activity');
});
});
});
App.IndexRoute = Ember.Route.extend({
model: function(){
return this.store.find('role');
}
});
App.ActivitiesRoute = Ember.Route.extend({
model: function(params){
var roles = this.modelFor('index');
return roles.findBy('name', params.name).get('activites');
}
});
App.Role = DS.Model.extend({
name: DS.attr('string'),
activities: DS.hasMany('activity', {async:true} )
});
App.Activity = DS.Model.extend({
name: DS.attr('string')
});
App.Role.FIXTURES = [{
id: 1,
name: 'Management',
activities: [1]
},{
id: 2,
name: 'Analysis',
activities: [1,2]
},{
id: 3,
name: 'Development',
activities: [2]
}]
App.Activity.FIXTURES = [{
id: 1,
name: 'talking'
},{
id: 2,
name: 'doing'
}];
Когда я перехожу к локальному хосту, я получаю простой список из трех ролей в левой части экрана и ничего в правой части. (как и ожидалось)
Когда я затем выбираю ссылку (например, «Анализ»), выход с правой стороны заполняется ожидаемым списком из двух названий действий «говорить» и «делать».
LHS list RHS pane
========== ========
Management talking
Analysis doing
Development
Все идет нормально.
Я заметил, что когда я наводил курсор на ссылку «Анализ», браузер показывает приведенный ниже URL, как и ожидалось.
localhost:/#/Analysis
Однако, когда я вырезаю и вставляю этот URL-адрес непосредственно в адресную строку браузера, я получаю только список ссылок слева и ничего в главном окне. Список "говорить" и "делать" не появляется. В браузере не отображаются ошибки, а ember не вызывает исключений.
Как сделать так, чтобы этот простой вложенный маршрут обновлял все содержимое при прямой прямой ссылке вместо того, чтобы постоянно перемещаться из корня?