2014-12-07 46 views
0

我一直在試圖讓一個嵌入的模型列表被加載。從演示中我明白了EmbeddedRecordsMixin是要走的路,但是仍然失敗:「Error:Assertion Failed:TypeError:factory is undefined」我試圖在我的燈具中將它們分開,並且這工作得很好,所以我必須丟失一些東西在嵌入部分,儘管如此:http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.htmlEmber的數據EmbeddedRecordMixin

這不適用於夾具呢?

var App = window.App = Ember.Application.create({ 
    LOG_TRANSITIONS: true 
}); 
var attr = DS.attr; 

App.Modificators = DS.Model.extend({ 
    "tpe": attr('string') 
}); 
App.SpecialStuff = DS.Model.extend({ 
    "title": attr('string'), 
    "body": attr('string'), 
    "modificators": DS.hasMany('modificators') 
}); 

App.SpecialStuffSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
     "modificators": { embedded: 'always' } 
    } 
}); 

App.SpecialStuff.reopenClass({ 
    FIXTURES: [{ 
     "id": 79, 
     "title": "fewfew", 
     "body": "kkk", 
     "modificators": [{ 
      "id": 1, 
      "tpe": "vv", 
     }, 
     { 
      "id": 2, 
      "tpe": "mv", 
     }] 
    }] 
}); 
App.SpecialStuffIndexRoute = Ember.Route.extend({ 
    model: function (params) { 
    return this.store.find('special_stuff'); 
    } 
}); 

App.Router.map(function() { 
    // Add your routes here 
    this.resource('specialStuff', function() {}); 
}); 

Ember.Inflector.inflector.uncountable('modificators'); 
Ember.Inflector.inflector.uncountable('special_stuff'); 
App.ApplicationAdapter = DS.FixtureAdapter.extend({}); 

回答

1

Ember Data的Fixture Adapter沒有使用串行器來獲取數據。你最好用類似https://github.com/jakerella/jquery-mockjax的模擬json電話,並使用其餘的適配器。

下面是一些例子:Ember-data embedded records current state?

+0

何這就是我所在的地方。如果你不能只放置你的服務器將返回的東西,這不會使燈具完全無用嗎? – charly 2014-12-07 20:25:44

+0

這一切都取決於該適配器是否被創建用於模仿您的服務器,或者只是提供一種輕鬆地將燈具插入到ember數據的方式。我不知道,如果我試圖模仿我打算做的計劃,我會使用我打算使用的適配器和序列器以及mockjax。 – Kingpin2k 2014-12-07 20:33:41

+0

是的,我想我是在將Fixtures作爲一個嘲諷功能,當它可能有其他應用程序。 感謝您的解釋! – charly 2014-12-07 20:59:29