0

私は、ember データ 1.0 ベータ版リリースを使用してアプリを機能させようとしていますが、サーバーからロードされた関連モデルの検索をトリガーするルートを取得する際に問題が発生しています。

私のオブジェクトは次のようになります。

App.Technician = DS.Model.extend({
  first_name: DS.attr(),
  last_name: DS.attr(),
  name: function(){
    return this.get('first_name')+' '+this.get('last_name');
  }.property('first_name', 'last_name')
});

App.TechniciansRoute = Ember.Route.extend({
  model: function() {
    return this.get('store').find('technician');
  }
});

ただし、技術者ルートがモデルをロードしようとすると、 this.get('store').find() は常に find が定義されていないという例外をスローします。私はそれにデバッグし、次の関数をヒットしました

store: Ember.computed(function(){
    var container = this.container;
    var routeName = this.routeName;
    var namespace = get(this, 'router.namespace');

    return {
      find: function(name, value) {
        var modelClass = container.lookupFactory('model:' + name);

        Ember.assert("You used the dynamic segment " + name + "_id in your route "+ routeName + ", but " + namespace + "." + classify(name) + " did not exist and you did not override your route's `model` hook.", modelClass);

        return modelClass.find(value);
      }
    };
  })

modelClass は、find() が定義されていない App.Technician への参照であるため、実行がスローされます。

誰にもアイデアはありますか?シンプルなものが欠けているように感じますが、それが何であるかわかりません。

4

2 に答える 2

0

直感的なピクセルは私を正しい道に導きましたが、基本的に起こっていたのは依存関係の読み込みの問題でした.

依存関係をロードするためにrequire.jsを使用していますが、Application.createが呼び出される前に、依存関係としてember-dataがありませんでした。これにより、データ モデルとルートが読み込まれるまで初期化が追加されなかったため、作成していたアプリケーション オブジェクトで Application.initializers がトリガーされませんでした。

簡単に言えば。Ember.Application.create(); を呼び出す前に、ember-data がロードされていることを確認します。

于 2013-09-19T12:35:06.167 に答える