Von einer Route oder einer Komponente möchte ich ein Array von Werten aus Geschäftsdaten erstellen. Z.B. Ich habe ein Projektmodell und ich möchte eine Liste von Projektnamen bekommen, die ich in ausgewählten Boxen, Tabellenüberschriften verwenden kann ...Ember.js - Listet Werte aus dem Geschäft
Ich habe das folgende versucht und berechnete Eigenschaften betrachtet, aber kann das nicht funktionieren ?
// user route
model() {
let projects = this.store.findAll('project').then((projects) => {
return projects.mapBy('name');
});
...
Update:
// users.new route
import Ember from 'ember';
export
default Ember.Route.extend({
projectNames: [],
afterModel: function() {
this._super(...arguments);
return this.store.findAll('project').then((projects) => {
this.set('projectNames', projects.mapBy('name'));
});
},
setupController: function (controller) {
this._super(...arguments);
controller.set('projectNames', this.get('projectNames'));
},
model() {
let user = this.store.createRecord('user'),
projectRoles = [],
projects = this.get('projectNames');
console.log('projectNames: ' + this.get('projectNames'));
projects.forEach((project) => {
let projectRole = this.store.createRecord('projectRole', {
project: project,
role: 'Viewer'
});
projectRoles.push(projectRole);
});
// Create 1 role per project
Ember.RSVP.all(projectRoles.map(projectRole => projectRole.save())).then((projectRoles) => {
user.set('projectRoles', projectRoles);
});
return user;
}
}
Das sieht soweit ok aus. Können Sie den Rest des Codes Ihrer Route anzeigen? – Igor