我正在使用javascript对象数组创建一个基本的ember应用程序(除非我牢牢掌握,否则不要使用任何其他内容)。我遇到了麻烦 实现添加新用户的功能。我不确定要添加到控制器中的内容。
在模板中:
<form {{action 'add-student' on="submit"}}>
{{input id="add-student" type="text" placeholder="student name" value=name}}
<button class="btn btn-default" type="submit">Add</button>
</form>
我的学生路线: 从'余烬'中导入Ember;
var students = [{
id: 1,
name: 'John',
}, {
id: 2,
name: 'Vanessa'
}];
export default Ember.Route.extend({
model() {
return students;
}
});
答案 0 :(得分:1)
对于路线,您可能需要这样的东西。使用Ember.RSVP.hash,它允许您从模型中返回1-n属性。
separate
在模板中你会想要这样的东西。
library(dplyr)
library(tidyr)
names(data) <- paste(names(data), ave(names(data), names(data),
FUN= seq_along), sep=",")
lapply(data, as.data.frame) %>%
bind_rows(., .id = "ID") %>%
separate(ID, into = c("ID", "Seq"), sep=",")
要处理addNewStudent,您需要在控制器中编写一个动作。
export default Ember.Route.extend({
model() {
const store = this.get('store');
return Ember.RSVP.hash({
students: Ember.A([
store.createRecord('student', { name: 'Vanessa'})
]),
someOtherModelThing: store.find('xx')
})
}
});
如果您还希望保存它们,您可能希望通过“saveStudents”动作保存按钮。
{{input type="text" value=name}}
<button class="btn btn-default" {{action "addNewStudent" name}}>Add</button>
显示模板中的学生列表。
...
actions: {
addNewStudent(studentName) {
const store = this.get('store');
var newStudent = store.createRecord('student', {name: studentName});
this.get('model.students').pushObject(newStudent);
}
}
...
所有这一切都可以在不使用ember-data(store.createRecord等等)的情况下实现。使用普通的JSON和Ajax来保存数据。