Я это router.js
:модель доступа с другого маршрута в EmberJS
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('analyses', function() {
this.route('new', { path: 'new'});
this.route('show', { path: ':analysis_id' });
this.route('edit', { path: ':analysis_id/edit'});
this.route('dataFunctions', { path: ':analysis_id/dataFunctions', resetNamespace: true }, function() {
this.route('new', { path: 'new'});
});
});
export default Router;
и эти 2 модели
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
dataFunctions: DS.hasMany('dataFunction', {async: true}),
});
и
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
analysis: DS.belongsTo('analysis', {async: true})
});
Содержание routes/data-functions/index.js
:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
console.log(this.store.findRecord("analysis", id).get("dataFunctions"));
}
});
Содержание routes/analyses/index.js
:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll("analysis");
},
setupController(controller, model) {
controller.set("analyses", model);
}
});
содержимое routes/analyses/show.js
:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.findRecord('analysis', params.analysis_id);
},
setupController(controller, model) {
controller.set("analysis", model);
}
});
Когда я перейти к /analyses/1/dataFunctions
моя модель анализа загружается (это шоу в Ember инспектора), но я могу» t, похоже, обращаются к нему на моем маршруте data-functions/index.js
. Как мне это сделать? Мне нужна модель анализа для расширения findAll
в моем адаптере для работы с данными, чтобы изменить URL-адрес ресурса rails-api.
Я пробовал использовать this.store.modelFor("analysis").get("id")
, но это ошибки, говорящие о том, что get не является funcion.
Я использую Ember 2.0.1 и Ember Data 2.0.0. Я потерян здесь, любая помощь будет очень признательна.
'this.store.findRecord ("анализ", идентификатор)' - см http://guides.emberjs.com /v2.0.0/models/the-rest-adapter/ – elithrar
Можете ли вы поделиться кодом маршрута, где вы определяете функцию 'model' с загруженной моделью анализа? В каком месте вы пытались использовать 'this.store.modelFor ...'? –
Чтобы получить доступ к модели другого маршрута, вы должны явно вернуть его, ввести его или он должен быть вложенным маршрутом листа. – elrick