我已經在這裏工作了幾天,並決定咬緊牙關並尋求幫助。動態創建和刪除Ember模型/在運行時
我使用燼,CLI,和我想在運行時根據一些元數據動態創建灰燼模型。如果用戶想要指定一個數據集(查詢,文件等),那麼就是一個示例用例。我想讀取用戶的數據文件並根據文件結構設置模型。
我已經成功地建立,它使用灰燼數據及固定裝置(爲簡單起見)餘燼-CLI應用。我的靜態示例有三種模式,當我使用Chrome Ember調試器時,我可以在Store中看到模型和數據。
現在到我的動態例如...
我已經能夠在IndexRoute設置它
var IndexRoute = Ember.Route.extend({
init: function() {
// Create a simple model dynamically
var MyModel = DS.Model.extend({
defineAttributes: function(){
Ember.defineProperty(this, 'col1', DS.attr());
Ember.defineProperty(this, 'col2', DS.attr());
Ember.defineProperty(this, 'col3', DS.attr());
}.on('init')
});
// insert some data into our model
MyModel.reopenClass({
FIXTURES: [
{
id: '1',
col1: "key1",
col2: "value1",
col3: "value2"
},
{
id: '2',
col1: "key2",
col2: "value1",
col3: "value2"
},
{
id: '3',
col1: "key3",
col2: "value1",
col3: "value2"
}
]
});
}
});
問題成功定義在運行時的模型是,我沒有看到已放置模型的位置,並且不會顯示在數據(存儲)中的Chrome調試器中。
如果我將MyModel
的定義更改爲Ember.Application.MyModel
,那麼我可以看到模型在控制檯中的Ember.Application
下定義,但它仍然對Ember調試器不可見。
我然後試圖擴大上述例子添加model
鉤如下:
var IndexRoute = Ember.Route.extend({
init: function() {
...
},
model: function() {
return this.store.findAll('my-model');
}
});
但是調用this.store.findAll('my-model')
在這兩種情況下失敗。我假設我沒有正確接線。
在我的例子,我也知道,我的模型的名字不是動態兩種,所以我真的想知道如何在運行時對我的模型創建一個名稱編程。
我真的很感激那些在那裏誰更有經驗與框架,因爲我已經與Ember並在約定的方式整體配置真的很感動一些幫助或指導。
感謝,
戴夫
當你完成這個任務之後,你將會學到更多關於Ember的知識,而不是你真正想要的。 – 2014-12-05 07:49:24