Несчастливо, пример для ссылок в направляющих Ember (http://emberjs.com/guides/templates/links/) для меня не работает.linkTo генерирует href в/<App.Object: ID>, а не в/ID
Чтобы показать список tempworkers, и есть ссылка для каждого tempworker на странице детали, я использую следующий код:
HTML:
<script type="text/x-handlebars" data-template-name="tempworkers">
<div>
{{#each controller }}
<tr>
<td>{{#linkTo 'tempworker' this}} {{firstname}} {{/linkTo}}</td>
<td>{{initials}}</td>
<td>{{completeSurname}}</td>
</tr>
{{/each}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="tempworker">
<div id="tempworker">
<p>{{view Ember.TextField valueBinding='firstname'}}</p>
<p>{{view Ember.TextField valueBinding='initials'}}</p>
<p>{{view Ember.TextField valueBinding='surnamePrefix'}}</p>
<p>{{view Ember.TextField valueBinding='surname'}}</p>
</div>
</script>
Javascript:
window.App = Ember.Application.create({
LOG_TRANSITIONS: true,
ENV.EXPERIMENTAL_CONTROL_HELPER = true;
});
App.Store = DS.Store.extend({
revision : 11,
adapter : DS.RESTAdapter.extend({
url : 'http://dev.start.flexplanners.com/api'
})
});
App.Router.map(function() {
this.route('tempworkers'); // /tempworkers
this.route('tempworker', { path: '/tempworkers/:id' }); // /tempworkers/:id
});
App.TempworkersRoute = Ember.Route.extend({
model : function() {
return App.Tempworker.find(); // return All tempworkers to the TempworkersController
}
});
/* TODO: Question -> According to http://emberjs.com/guides/routing/defining-your-routes/, this should be working by convention, and NOT explicitely defined here?
* But when I leave it out, it's broken :(
* */
App.TempworkerRoute = Ember.Route.extend({
model : function(params) {
return App.Tempworker.find(params.id); // return tempworker by id to the TempworkerController
}
});
Пункты использования:
When I visit the URL /tempworkers, the app fires a request
to my server API, and return the list in my tempworkers view.
When I visit the URL /tempworkers/[UUID], the app fires a
request to my server API, and return the requested tempworker
in my tempworker view.
When I click a generated link in the list of tempworkers, the app routes me
to /tempworkers/<App.Tempworker:ember343:47cfa9f2159d45758ceacc4c15ae1671>,
and shows the details in my tempworker view
Мои вопросы таковы:
1) Являются ли эти 3 варианта использования ожидаемым поведением?
2) Если да, то это показывает различие между двумя состояниями, 1 - это новый URL-адрес посещения (включая вызов API-сервера) и 1 переход на другое представление, с разобранным ссылкой на один объект из списка?
3) Если да, когда будет момент перезагрузить список и обновить элементы в списке?
4) Если нет, то как я смогу создать ссылку для создания href как «/ tempworkers/[UUID]», и пусть приложение может вызвать вызов API-сервера сервера, чтобы получить детали tempworker?
Заранее благодарим за ваше время!
Rainer.
Чтобы уточнить, потому что это особенно противоречит тому, кто приходит из Rails, вы должны использовать соглашение /: _id и не можете настроить его, чтобы просто использовать /: id. –
evanbikes