2012-05-23 19 views
0

我的JSON對象看起來是這樣的:EmberJS - 創建/對象內訪問從嵌套數組對象和其代理是從服務器返回

[ 
    { 
    "id" : 1, 
    "name": "Biking", 
    "type": [{ 
     "id" : 1, 
     "name" : "Road" 
    }] 
    }, 
    { 
    "id" : 2, 
    "name": "MotorCycling", 
    "type": [{ 
     "id" : 1, 
     "name" : "MX", 
     "alias" : { 
     "name": "Dirt", 
     "showaliasonsportid": [1,2,3] 
     } 
    } 
    ]} 
] 

我燼JS看起來像這樣

App.Activity = Em.Object.extend({ 
}); 

App.ActivityListView = Em.View.extend({ 
}); 

App.activitiesController = Em.ArrayProxy.create({ 
    content: [], 

    loadActivities: function() { 
     var self = this; 
     $.getJSON('data/activities.json', function(data) { 
     data.forEach(function(item) { 
      self.pushObject(App.Activity.create(item)); 
     }); 
     }); 
    } 
}); 

我的問題是我如何在showaliasonsportid數組上進行操作,或者甚至可以訪問它來顯示alias.name而不是type.name值?我讀過,我可能需要從別名和showaliasonsportid數組中創建一個對象,但我很困惑如何使用Ember做到這一點。

回答

1

查看Ember Data,它很好地解決了這些問題:https://github.com/emberjs/data

+0

感謝您的建議。我最初着眼於添加了ember-data,但DS.Model url屬性需要採用這種格式url:data/activity,而ember-data腳本會將其複製到數據/活動中。我沒有數據網址的控制權,所以我放棄了餘燼數據。你能寫一個URL處理程序的自定義函數嗎? – Upworks

+0

是的。如果你看看github頁面,你可以看到你如何定義自己的url /適配器/邏輯。 – Ryan