将新日期推送到ember javascript数组

时间:2016-05-31 04:37:42

标签: javascript ember.js

我正在使用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;
  }
});

1 个答案:

答案 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来保存数据。