0

我开始学习 Ember.JS 1 周,但我不明白其中的一部分:当我使用动作(如按钮单击)时获取索引控制器的模型。

我的代码有一部分:

<script type="text/x-handlebars" data-template-name="index">
   <button class="btn btn-danger" {{action "addPost"}}> test</button>
</script>

有我的 IndexController :

App.IndexController = Ember.ArrayController.extend({
    addPost: function() {
        var po = this.controllerFor('index').get('model');
        console.log(po);
            po.createRecord({
               title: "YOLO",
               description: "Simply",
               date: "2013-03-01"
            });
    }
});

我的模型:

App.Post = DS.Model.extend({
    title: DS.attr('string'),
    description: DS.attr('string'),
    date: DS.attr('date')
});

因此,当我不使用 登录时.get('model'),我得到了 Class 回报,而当我使用它时,我得到了相同的回报。所以为什么 ?正常吗?在这两种情况下,我都有一个错误说“[Object object] has no method createRecord”。

非常感谢您的帮助。

4

1 回答 1

0

创建新记录只需要调用createRecord模型类本身的方法即可。

试试这个:

App.IndexController = Ember.ArrayController.extend({
  addPost: function() {
    var po = App.Post.createRecord({
      title: "YOLO",
      description: "Simply",
      date: "2013-03-01"
    });
  }
});
于 2013-03-01T23:56:12.447 回答