我试图弄清楚为这个项目建模的正确 Ember.js 方法是什么,例如。需要什么模型、路线和控制器。 我已经启动了一个 jsBin 来工作。
我的要求可以安全地减少到:
项目及其选项
- 项目有一系列选项
- 选项有自己的属性
- 项目具有仪表板将使用的其他属性(除了选项之外)
仪表板
- 仪表板没有自己的任何数据
- 仪表板需要观察所有项目和选项,并更新对其属性的分析
导航
- 几乎没有
- 这将出现在一个“页面”上,但将来可能会添加少量页面/弹出窗口
- 我希望能够保存和重新填充给定的状态(例如,所选选项 id 的列表)
数据
- 数据将通过单个 json 调用加载一次
- 应用程序逻辑将仅在 Ember 中的客户端完成 - 业务逻辑没有 ajax
- 与服务器的唯一后续联系将是如果/何时用户保存状态
那么这将如何在 Ember 中构建呢?
我曾经尝试过自己做一次,但这是我的第一次尝试,最终我得到了一个非常丑陋的设置。我想看看有 Ember 经验的人会如何处理这个问题:
jsBin 样机(链接)
我已经创建了一系列车把模板,但还没有确定应该存在哪些模型以及需要哪些控制器。
json
{
"Items" : [
{
"Item" : {
"nid" : "3",
"title" : "Hydro",
"image" : "http://bpf.vm/sites/default/files/bpf_things/hydro.jpg",
"properties" : "Baseload, Intermittent",
"values" : {
"Cost" : {
"price" : "6",
"quantity" : null
},
"Percent of Portfolio" : {
"price" : null,
"quantity" : "56"
}
},
"options" : {
"1" : {
"price" : "1512",
"quantity" : "10000"
},
"12" : {
"price" : "825",
"quantity" : "20000"
},
"11" : {
"price" : "550",
"quantity" : "50000"
}
}
}
},
{
"Item" : {
"nid" : "4",
"title" : "Nuclear",
"image" : "http://bpf.vm/sites/default/files/bpf_things/nuclear.jpg",
"id" : "",
"properties" : "Baseload, Predictable",
"values" : {
"Cost" : {
"price" : "8",
"quantity" : null
},
"Percent of Portfolio" : {
"price" : null,
"quantity" : "21"
}
},
"options" : {
"4" : {
"price" : "825",
"quantity" : "10000"
},
"13" : {
"price" : "411",
"quantity" : "15000"
}
}
}
},
{
"Item" : {
"nid" : "5",
"title" : "Natural Gas",
"image" : "http://bpf.vm/sites/default/files/bpf_things/gas.jpg",
"id" : "9",
"properties" : "Baseload, Predictable",
"values" : {
"Cost" : {
"price" : "5",
"quantity" : null
},
"Percent of Portfolio" : {
"price" : null,
"quantity" : "24"
}
},
"options" : {
"7" : {
"price" : "400",
"quantity" : "50000"
},
"10" : {
"price" : "600",
"quantity" : "100000"
}
}
}
}
]
}