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] にはメソッド 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 に答える