0

Ember.js で自分の (動的) モデルから情報を取得する方法について混乱しています

これが私のモデルです(これまでのところ動作します):

App.Router.map(function() {
        this.resource('calendar', { path: '/calendar/:currentMonth'});
});

App.CalendarRoute = Ember.Route.extend({
  model: function (params) {
    var obj = {
       daysList: calendar.getDaysInMonth("2013", params.currentMonth),
       currentMonth: params.currentMonth
    };
    return obj;
  }
});

「currentMonth」属性を取得したいだけです。

App.CalendarController = Ember.Controller.extend({
  next: function() {
    console.log(this.get('currentMonth'));
  }
});

しかし、「未定義」エラーが発生します。

値を取得および設定するには、モデル (Ember.model.extend()) を明示的に宣言する必要がありますか?

4

1 に答える 1

3

aを aに設定することに関して、知らないかもしれない規則がいくつかあります。ModelController

ではRoute、モデルは、定義した任意のオブジェクトまたはオブジェクトのコレクションにすることができます。適用される規則は非常に多く、ほとんどの場合、さまざまなオブジェクトの名前を使用してクエリの構築をガイドし、コントローラーのコンテンツを設定するため、何も指定する必要はありません。特定のコードではobj、モデルとして返されます。

setupControllerEmber は、このオブジェクトをコントローラーのcontentプロパティに設定するというフックを提供します。例:

App.CalendarRoute = Ember.Route.extend({
  model: function (params) {
    var obj = {
       daysList: calendar.getDaysInMonth("2013", params.currentMonth),
       currentMonth: params.currentMonth
    };
    return obj;
  },
  setupController: function(controller, model) {
     // model in this case, should be the instance of your "obj" from "model" above
     controller.set('content', model);
  }
});

そうは言っても、あなたは試してみるべきですconsole.log(this.get('content.currentMonth'));

于 2013-04-08T19:13:07.350 に答える