我刚开始使用Ember.js框架,并且我有一个简单的问题。我将我的数据初始化为普通的JS对象(填充模板,由我的PHP脚本创建),并且我想在Ember.Application启动之前将它们转换为Ember.js对象(或者在启动之后立即将它们转换为Ember.js对象,不知道有什么不同)。将纯JS对象的数组转换为Ember.js ArrayController
这样的事情可能吗?如果是,那么最好的方法是什么?
例子:
App.User = Em.Object.extend({
id: null,
avatar: "/path/to/default/avatar.jpg",
name: null,
});
my_data = [
{"id":1, "name":"John Doe"},
{"id":2, "name":"Barrack Obama", "avatar":"/president/photo.jpg"}
];
App.usersController = Em.ArrayController.create({
content: [],
addUser: function(user) { ... },
});
我需要的是这样的:
App.usersController.initialize(my_data);
编辑:有一两件事。我的数据与Ember对象的格式不完全相同,因此我需要进行一些转换。只是举例,假设我有头像和名字包裹在另一个对象,这样的:
{
"id":2,
"info": {
"name":"Barrack Obama",
"avatar":"/president/photo.jpg"
}
}
看看https://github.com/emberjs/data – 2012-07-14 22:42:28
将App.usersController.pushObjects(my_data)转换为Ember.Object后出现什么问题? – Rajat 2012-07-15 04:45:03
这就是我的观点。我怎样才能轻松地转换它们,没有任何不必要的代码? – 2012-07-15 09:10:02