我正在使用D3.js强制布局根据ember.js模型中的数据绘制节点和链接图。我有一个App.Device
模型和一个App.Interface
模型(网络设备和网络接口),所以我只需要App.Device.find()
和App.Interface.find()
并迭代返回的数据,以便生成要渲染的节点/链接。
除此之外,不是那么快。 Ember中的所有内容都是异步的。我查看Access model association from view - 但使用观察者意味着它只在模型更改时重绘...而不是在路线导航到时。我也无法弄清楚如何得到一个两个发现的结果的模型,因此只能在我的两个结果之一上有观察者。
我还找到了emberjs view with raphael or d3 - 但那里的所有链接似乎都已死/过时。
答案 0 :(得分:0)
我发现做我想做的最简单的方法是在路线中创建一个伪复合模型:
App.NetworkmapRoute = Ember.Route.extend({
model: function() {
return Ember.Object.create({
devices: App.Device.find(),
interfaces: App.Interface.find()
});
}
});
然后我可以在控制器上创建计算属性(必须是ObjectController
)并在视图中使用观察者观察那些控制器属性并进行绘制。这似乎有效。