0
Blocks.NVD3Chart = Blocks.DSModel.extend({
xAxis: DS.attr()
,series: DS.attr()
})
Blocks.NVD3Chart.FIXTURES = [
{
"id": "02c6486ac0a8017400348bcdb2029c63asdf"
,xAxis: [1,2]
,series: [
{
data: [10,20]
,name: "Employment"
}
]
}]
路線:
Blocks.LetsseeRoute = Ember.Route.extend({
model: function() {
return this.store.find('NVD3Chart')
}
})
查看:
Blocks.LetsseeView = Ember.View.extend({
templateName: 'letssee',
drawChart: function() {
console.log(this.get("controller.content"))
console.log(this.get("controller.model"))
}.on("didInsertElement")
})
而我使用的是隱式控制器聲明。 這是在didInsertElement上調用的日誌語句結果的結果。 (http://imgur.com/E74see7)
現在,問題歸結爲從控制器中檢索內容。控制器內容的長度爲0.模型確實存在,但它確實有一個內容。但是內容的第一個元素中的數據是未定義的。但是,_data屬性已定義,幷包含我需要的數據。我不想利用_data值,因爲它是一個原始的複製餘燼數據存儲,我不想與它混淆。在控制器/視圖內的路由中設置和檢索內容的正確方法是什麼?我有沒有做得不好?
很多時候,視圖首次創建時模型並未完全解決。所以這個承諾在你的'didInsertElement'事件之前可能沒有實現。您應該讓頁面完成加載,然後查看容器中的視圖,並在所有內容確定後查看數據是否完整。 (這似乎不太可能,因爲設置了_data屬性,但我們應該先從最簡單的東西開始。) – GJK
我試圖在控制檯的控制檯上進行查找,但不幸的是,數據仍然未定義。此外,控制器的模型或內容都不是承諾。所以沒有辦法添加'then'語句 – Jaime
控制器的「內容」是模型。你不應該直接訪問該屬性,它只是用於PromiseObject。模型絕對應該是一個承諾。根據上面的代碼,它應該是一個'DS.PromiseArray'。 – GJK