Ich habe ein Problem mit Formularen in Glut, die this.getProperties
innerhalb des Controllers gibt undefined
für alle Eigenschaften zurück. Hier ist mein Code:Ember-Controller getProperties gibt "undefined" zurück
settings.hbs:
<form {{action 'saveSettings' on='submit'}}>
<label for="email">Email</label>
<p>
{{input id='email' placeholder='Enter Email' value=model.email}}
</p>
<label for="name">Name</label>
<p>
{{input id='name' placeholder='Enter Name' value=model.name}}
</p>
<label for="surname">Surname</label>
<p>
{{input id='surname' placeholder='Enter Surname' value=model.surname}}
</p>
<label for="skype">Skype</label>
<p>
{{input id='skype' placeholder='Enter Skype' value=model.skype}}
</p>
<label for="phone">Phone</label>
<p>
{{input id='phone' placeholder='Enter Phone' value=model.phone}}
</p>
<label for="city">City</label>
<p>
{{input id='city' placeholder='Enter City' value=model.city}}
</p>
<label for="country">Country</label>
<p>
{{input id='country' placeholder='Enter Country' value=model.country}}
</p>
<button type="submit">Save Settings</button>
</form>
settings.js (Controller)
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
saveSettings() {
let {
email, name, surname, skype, phone, city, country
} = this.getProperties('email', 'name', 'surname', 'skype',
'phone',
'city', 'country');
var user = this.get('model');
user.set('email', email);
user.set(
'name', name);
user.set('surname', surname);
user.set('skype',
skype);
user.set('phone', phone);
user.set('city', city);
user
.set('country', country);
user.save();
}
}
});
settings.js (Strecke)
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.find('user', 'me');
}
});
Wenn Last der Seite Alle Eingaben zeigen den korrekten Wert an, aber beim Senden des Formulars sind alle Eigenschaften null. Ich brauche ein paar Stunden hier und ich sehe nicht, warum es nicht funktioniert.
Danke Pavol! Klappt wunderbar. Sehr hilfreich! Endlich habe ich verstanden, wie Controller und Templates funktionieren. – jos